Learn Data Structure In Burmese

မှတ်ချက် – ဒီ Post သည် Draft Publish ဖြစ်သည်။ တစ်ချို့အပိုင်းများ ဘာသာပြန်ဖို့လိုအပ်နေသေးသည်။ ဖြစ်နိုင်ရင် Feedback ပေးစေချင်ပါတယ်။ ကျွန်တော်ဒီနေ့ပြောမယ့်အကြောင်းအရာတွေတော်တော်များများက itsy-bisty-data-structures ကနေကိုးကားဘာသာပြန်ပြီးတော့ရေးသားထားတာဖြစ်ပါတယ်။ English လို Study လုပ်ရတာအဆင်ပြေတဲ့သူအတွေအတွက် နဂိုမူရင်း repo ကိုသွားပြီး study လုပ်ဖို့တိုက်တွန်းလိုပါတယ်။ ကိုယ်တိုင် CS ကျောင်းဆင်းမဟုတ်တာကြောင့် Data Structure/Algorithm ဘက်မှာအားနည်းတယ်လို့ခံစားရတယ်။ နောက်တကယ်အလုပ်လုပ်တဲ့အခါမှာလည်း ဒါတွေသိတာမသိတာဘယ်လောက်အရေးပါလဲဆိုတာ သိလာတွေကြောင့်ရယ် သေချာလိုက်လုပ်ဖြစ်ရင်း ဒီ repo က အတိုဆုံးနှင့် နားလည်အလွယ်ဆုံးဖြစ်တာကြောင့် မြန်မာလိုလေးပါရှိရင်ကောင်းမယ်ဆိုပြီး စဥ်းစားမိလို့ဘာသာပြန်တာလိုလို ကိုးကားတာလိုလိုလုပ်ပြီးရေးဖို့စဉ်းစားဖြစ်ပြီး ရေးဖြစ်သွားတာပါ။ ကျွန်တော်တို့ Data Structure တွေကောင်းကောင်းမသိဘူးဆိုရင်… algorithm problem တွေ solve လုပ်တဲ့နေရာမှာအတော်သိသာတယ်။ ဥပမာ ကိုယ်သိတဲ့ […]

Valid Palindrome

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ဒီ Problem က Leetcode ရဲ့ Valid Palindrome ကို solve လုပ်ထားတာဘဲဖြစ်ပါတယ်။ ပေးထားတဲ့ String S က palindrome ဖြစ်တယ်ဆိုရင် true return ပြန်ရမှာဖြစ်ပြီးတော့ မဟုတ်ဘူးဆိုရင် false return ပြန်ရမှာဖြစ်ပါတယ်။ ဒီနေရာမှာ Palindrome ဆိုတာကိုနားမလည်ရင် Problem solve လုပ်ဖို့ရာမလွယ်ပါဘူး။ Palindrome ဆိုတာပေးထားတဲ့ string ကိုနောက်ကနေ reverse ပြန်ရင်လည်းအတူတူဖြစ်တာမျိုးကိုပြောတာပါ… အောက်ကနမူနာကိုကြည့်ရင်ပိုရှင်းမယ်ထင်တယ်။ ကျွန်တော်တို့ဒီနေရာမှာ palindrome က backward, punctuation, case နှင့် spacing တွေကို ignore […]

Two Number Sum

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျွန်တော်ဒီနေ့ Solve လုပ်မှာကတော့ Two Number Sum Problem ဘဲဖြစ်ပါတယ်။ ဘယ်လို Solve လုပ်မလဲဆိုတာမပြောခင် ဘာကပြဿနာလဲဆိုတာကို တစ်ချက်ကြည့်လိုက်ရအောင်… Argument အနေနှင့် Number Array List တစ်ခုပါမယ် Second Argument Target Value တစ်ခုပါမယ်။ ကျွန်တော်တို့ရေးရမယ့် Function က Array ထဲက Number နှစ်ခုပေါင်းထည့်ပြီးရတဲ့ Target Value Pair ပါတယ်ဆိုရင် true return ပြန်ရမယ်။ တကယ်လို့မပါဘူးဆိုရင် false return ပြန်ရမယ် ဥပမာ – [3, 5, 2, -4, […]

Algorithm Interview Preparation

ဒီရက်ပိုင်း Algorithm Interview Question လေးတွေလိုက်လုပ်ဖြစ်တယ်။ ကိုယ့်ကိုယ်ကိုလည်းလုပ်ဖို့ဖိအားဖြစ်အောင်သုံးရက်တစ်ပုဒ်လောက်တင်ဖို့ကြိုးစားပြီးတင်ပေးပါ့မယ်။ Algorithm Question တွေမဖြေခင် Big O Notation ဆိုတာဘာလဲ ဆိုပြီးကျွန်တော်ရေးထားတာကိုအရင်ဖတ်ပေးပါ။ Algorithm Interview တွေကိုဖြေတဲ့အခါမှာ Data Structure တွေသိထားဖို့ကလည်းအရေးကြီးပါတယ်။ ဒါမှ Problem ပေါ်မှာမူတည်ပြီးတော့ဘယ် Data Structure ကိုသုံးရင်ပိုမြန်တယ်၊ ပိုပြီးအကျိုးသတ်ရောက်မှုရှိတယ်ဆိုတာကို ဆုံးဖြတ်ရွေးချယ်လို့ရမှာဖြစ်တော့ Data Structure တွေကိုအရင် ဒီမှာ Study လုပ်ပါ။ Array/String Valid Anagram Two Number Sum Valid Palindrome Implement strstr() Reverse Words in a String Reverse Words in a String II […]

How does computer work?

ကွန်ပျူတာတက္ကသိုလ်မတက်ခဲ့ရတော့ ကွန်ပျူတာတွေဘယ်လိုအလုပ်လုပ်လဲဆိုတာသေချာ Detail မသိဘူး (Computer တက္ကသိုလ်တက်မှ Abstraction တွေကိုကျော်နိုင်တာမဟုတ်ပါဘူး)။ အားလုံးက Abstraction တွေဘဲဖြစ်နေတယ်။ ဘာလို့လည်းတော့မသိဘူး ဒီ Abstraction တွေကို ဘယ်လို (How) အလုပ်လုပ်လဲဆိုတာကို Programmer စလုပ်ကာစက မစဥ်းစားဖြစ်ဘူး။ High-Level Over View တွေကိုဘဲလေ့လာဖြစ်တယ်။ အခုနောက်ပိုင်း Computer Science နှင့် Math ကို ကိုယ့်ဘာသာ Online က Self Study လုပ်တဲ့အခါမှ Abstraction တို့ How thing work တို့ဆိုတာတွေတွေ့လာရပြီး ဘယ်လိုအရေးကြီးတယ်ဆိုတာ ပိုပိုပြီးသိလာတယ်။ အခုကျွန်တော်တို့သုံးနေတဲ့ Computer ဆိုတာကအများကြီးလုပ်နိုင်တယ်… Program ရေးတာကမစ YouTube တို့ရုပ်ရှင်တို့ကြည့်တာတွေအဆုံးပါဘဲ။ ကျွန်တော်တို့ Laptop ကိုနမူနာကြည့်လိုက်ရအောင်… […]

Big O Notation ဆိုတာဘာလဲ

Computer ကျောင်းဆင်းတွေဆိုရင်တော့ Big O ဆိုတာဘာလဲသိကြမယ်ထင်တယ်။ ကျွန်တော်တော့ ကိုယ့်ဘာသာ Algorithm Courses တွေလိုက်တက်ရင်းဟိုဖတ်ဒီဖတ်ဖတ်ရင်းမှ Big O ဆိုတာကြားဖူးပြီးလေ့လာဖြစ်တာပါ။ ကျွန်တော့်အတွက်တော့စလုပ်ခါစမှာ သိပ်မလွယ်ဘူးလို့ခံစားရပါတယ်။ ကျွန်တော်တက်နိုင်သလောက် အလွယ်ကူဆုံးဖြစ်အောင်တော့ကြိုးစားပြီး References တွေယူပြီးရှင်းပြထားပေးပါတယ်။ Big O ဆိုတာဘာလဲကအရင်စလိုက်ကြရအောင်။ ရိုးရိုးရှင်းရှင်းနားလည်အောင်ပြောရမယ်ဆိုရင် Big O ဆိုတာ Programmer အချင်း Algorithm တွေအကြောင်းပြောတဲ့နေရာမှာသုံးတဲ့စကားဖြစ်ပါတယ်။ Algorithm ထပ်ရှင်းရမယ်ဆိုရင် ကျွန်တော်တို့ရေးနေတဲ့ Function တွေဟာ Algorithm တွေလို့အကြမ်းဖျင်းမှတ်သားနိုင်ပါတယ်။ အဲ့တော့ Big O ဆိုတာ ကျွန်တော်တို့ရေးသားနေတဲ့ Program ထဲက Function တွေက input size ပေါ်မူတည်ပြီးတော့နှေးတယ်မြန်တယ်ဆိုတာတွေကိုခွဲခြားပေးတဲ့နည်းလို့ သတ်မှတ်နိုင်ပါတယ်။ နောက် Big O ကိုတစ်နည်း Asymptotic […]

Hexadecimal number system ဆိုတာဘာလဲ

ကျွန်တော်ပြီးခဲ့တဲ့ Post မှာ Binary Number System ဆိုတာဘာလဲဆိုပြီးရေးခဲ့တယ်။ ကျွန်တော်တို့ပုံမှန်သုံးနေတဲ့ 0 to 9 က Base 10, Binary Number System က Base 2၊ အခုကျွန်တော်ဒီနေ့ပြောမယ့် Hexadecimal number system ကတော့ base 16 ဖြစ်ပါတယ်။ ကျွန်တော်တို့ဒီနေရာမှာပြောစရာရှိတာက ဟုတ်ပါပြီ A to F က Number တွေမဟုတ်ဘူးလေဆိုပြီးမေးမယ့်သူတွေရှိမှာပါ… ဒီနေရာမှန်တစ်ချက်ကျွန်တော်တို့ပြန်စဥ်းစားရမှာက 0 to 9 ဆိုတာကလည်းအမှတ်လက္ခဏာတွေဘဲမဟုတ်ဘူးလားဆိုတာပါဘဲ၊ အဲ့လိုတွေးလိုက်ရင် A to F က Number မဟုတ်တာကအဆင်ပြေသွားပြီ။ ပုံမှန်ဆို A က 13 ဖြစ်နေမှာ… အခု Base […]

Binary number system ဆိုတာဘာလဲ

ကျွန်တော်တို့နေ့စဥ်အသုံးပြုနေတဲ့ Decimal Number System ဖြစ်တဲ့သုညကနေကိုးကတော့အားလုံးသိပြီးသားဖြစ်မယ်ထင်ပါတယ်… အဲ့ဒါက သုညကနေကိုးထိဖြစ်တဲ့ Number 10 လုံးကိုအခြေခံထားတဲ့အတွက် Base-10 လို့ခေါ်ပါတယ်ကွန်ပျူတာ programming language တွေအသုံးပြုမှုများလာတဲ့နောက်ပိုင်း နောက်ထပ် Number System တစ်ခုခေတ်စားလာပါတယ်… သူ့ကိုတော့ Binary Number System လို့ခေါ်ပါတယ်။ Binary Number System မှာ Digit 2 လုံးဘဲရှိပါတယ်။ အဲ့ဒါကတော့ သုညနှင့် တစ်ဘဲဖြစ်ပါတယ်။ (0 and 1) Binary Number System ကို Base-2 လို့လည်းခေါ်ပါတယ်။ သူ့မှာ (0/1) နှစ်လုံးဘဲရှိတာကိုး။ကွန်ပျူတာတွေက Binary Number System ကိုနားလည်ပါတယ်။ဘာလို့လည်း?ဘာလို့လည်းဆိုတော့ ကွန်ပျူတာက electrical device ဖြစ်တယ်။ electrical […]