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 Overview တွေကိုဘဲလေ့လာဖြစ်တယ်။ အခုနောက်ပိုင်း 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 […]