125. Valid Palindrome

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ Leetcode မေးခွန်းကိုကြည့်ရန် ဒီ Link ကိုနှိပ်ပါ။ ဒီ problem ကဘာလဲဆို Palindrome ဟုတ်မဟုတ်စစ်ရမှာပေါ့။ Palindrome ဆိုတာဘာလဲဆိုရင် ရှေ့နှင့်နောက်နှင့်ညီနေတာမျိုး ဥပမာ “A man, a plan, a canal: Panama” သူ့ကိုကြည့်လိုက်မယ်ဆိုရင် ရှေ့နှင့်နောက်နှင့်ညီနေတာ ဒါမျိုးကိုပြောတာပေါ့။ problem ကပြောထားတာက uppercase letters တွေကို lower case ပြောင်း non-alphanumeric တွေကို remove လုပ်ရမယ်။ ရှေ့ကဖတ်ဖတ် နောက်ကဖတ်ဖတ်တူကမယ်။ တူတယ်ဆိုရင် true မတူဘူးဆိုရင် false ပြန်ရမယ်။ ပထမဆုံးစဥ်းစားမိတာက သူ့ problem ထဲကအတိုင်းဘဲလုပ်တာပေါ့။ ပေးလိုက်တဲ့ […]

217. Contains Duplicate

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ Leetcode မေးခွန်းကိုကြည့်ရန် ဒီ Link ကိုနှိပ်ပါ။ Title နဲ့တင်ကိုရှင်းပါတယ် duplicate ပါမပါစစ်ကမှာ။ ဥပမာလေးတွေကိုတချက်ကြည့်ကြည့်ရအောင်… အဲ့တော့ duplicate ဖြစ်မဖြစ်စစ်ကမှာ။ အဲ့လိုစစ်ဖို့ပထမဆုံးတွေးမိတာက Brute Force နဲ့ စစ်မယ်။code ကိုတချက်ကြည့်လိုက်ရအောင်… သူ့ပြဿနာကဘာလဲဆိုတော့ Time Complexity: O(n^2) ဖြစ်နေတာ၊ ဒါပေမယ့် Space Complexity က O(1)။ နောက်တနည်းတွေးမိတာက sort လုပ်ပီးတော့ loop ပတ်မယ် နောက်က element ကလက်ရှိနဲ့တူလားစစ်မယ်အဲ့လိုမျိုးပေါ့။ Sort လုပ်တဲ့အတွက် သူ့ time complexity က O(n log n), duplicate ဖြစ်မဖြစ်ရှာတာက […]

Graph Algorithms

ကိုယ်တိုင် Graph နဲ့ပတ်သတ်တဲ့ Leetcode တွေရှင်းတဲ့အချိန်မှာ နဲနဲအခက်အခဲဖြစ်နေလို့ သေချာလိုက်ကြည့်ဖြစ်လို့ မြန်မာလိုရေးထားတာလဲမတွေ့မိလို့ ကိုယ်တိုင်လိုက်လေ့လာရင်းနှင့် တခြားကိုယ့်လိုသိချင်တဲ့သူတွေလဲ မြန်မာလိုလွယ်လွယ်ကူကူဖတ်ပီးနားလည်ပါစေဆိုတဲ့ စိတ်နှင့်ရေးထားတာပါ။ မှားယွှင်းနေတာ လွဲနေတာတွေရှိရင် comment မှာထောက်ပြပေးဖို့ပြောလိုပါတယ်။ ကျနော် reference ယူထားတဲ့ video တွေစာအုပ်တွေကိုအောက်ဆုံးမှာဖော်ပြထားပါတယ်။ ဒီ Graph အကြောင်းကိုမဖတ်ခင်သိထားရမယ့်ဟာလေးတွေရှိပါတယ်။ Basic Data structure နှင့် Recurssion လိုမျိုးပေါ့။ အခြေခံ Data structure တွေအကြောင်းကို ကျနော်ဒီမှာ ဘာသာပြန်ထားတာရှိပါတယ်။ ဒီမှာ ကျနော်ရေးထားတာမြန်မာလိုရေးထားပီးတော့ စကားလုံးတော်တော်များများကို ကျနော်ဘာသာပြန်ဖို့မကြိုးစားထားပါဘူး။ ဘာလို့လဲဆိုရင် ကျနော်တို့ leetcode problem တွေဖြေရှင်းတဲ့အချိန်မှာဘဲဖြစ်ဖြစ် တခြားစာအုပ်တွေဖတ်တဲ့အခါမှာလဲ ဒီစကားလုံးတွေကသုံးနေရမှာမလို့ပါ။ တက်နိုင်သလောက်တော့ ဘာသာပြန်ပီးထည့်ထားပါတယ်။ Graph ဆိုတာဘာလဲ graph = nodes + […]

Valid anagram

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျွန်တော်တို့ဒီနေ့ solve လုပ်မယ့် problem ကတော့ Valid anagram ဘဲဖြစ်ပါတယ်။ Leetcode က Question တစ်ခုဘဲဖြစ်ပါတယ်။ ပထမဦးဆုံး Question ကိုတစ်ချက်ကြည့်လိုက်ရအောင် string နှစ်ခုပေးမယ် s နှင့် t ဆိုပြီးတော့။ အဲ့ဒါကိုကျွန်တော်တို့စစ်ကမှာက t is an anagram of s ဖြစ်လားဆိုတာကိုပါဘဲ။ Question မှာမှတ်ချက်ပါသေးတယ်။ ဘာလဲဆိုရင် string တွေက lowercase alphabets တွေဘဲပါပါ့မယ်တဲ့။ Follow up မေးနိုင်တာကတော့ input မျာ unicode characters တွေပါရင်ဘယ်လိုဖြေရှင်းမလဲတဲ့။ အဖြေမစခင် Anagram ဆိုတာဘာလဲနှင့် Example တစ်ချို့ကိုအရင်ကြည့်လိုက်ရအောင်။ […]

Logarithms ဆိုတာဘာလဲနှင့် O(log n) ဘယ်လိုတွက်မလဲ

Big O အကြောင်းရေးတော့ O(log n) အကြောင်းပါတစ်ခါတည်းရှင်းပြမလို့ဘဲ။ ဒါပေမယ့် Logarithms ဆိုတာဘာလည်းရှင်းပြရဦးမယ်ဆိုပြီး နောက်ထပ် Post တစ်ခုလုပ်ဖို့ဆုံးဖြတ်လိုက်တာ။ ဒီ Post မှာ Logarithms ကို ရှင်းပြရင်းနှင့် O(log n) ပါတစ်ခါတည်းရှင်းပြပါ့မယ်။ ကျောင်းတုန်းကတော့ Logarithm ကိုသင်ခဲ့ဖူးတယ်။ ကျွန်တော်တော့မေ့ကုန်လို့ Khan Academy ကပြန်ကြည့်ရတယ်။ ပထမဆုံး Logarithms ဆိုတာဘာလဲကအရင်စရှင်းကြရအောင်… အထက်ဖော်ပြပါပုံရဲ့ ပထမ line မှာဆိုရင် 2 ^ 4 (2 power 4) က (2 x 2 x 2 x 2) 2 ကိုလေးခါမြှောက်တာနှင့်တူတယ်။ ဒုတိယ line မှာဆိုရင် 2 […]

DNS Record, what are A, CNAME, MX Records…?

ပထမဆုံး DNS Record အကြောင်းမပြောခင်… ကျွန်တော်တို့ပုံမှန်အသုံးပြုနေတဲ့ web browsing အကြောင်းကိုအရင်ပြောလိုက်ကြရအောင်။ ဥပမာ ygncode.com ကို browser URL မှာရိုက်ရှာလိုက်ပြီဆိုတာနှင့် ကွန်ပျူတာက ygncode.com ရဲ့ server ဘယ်မှာလဲဆိုတာသိဖို့လိုတယ်။ အဲ့လိုသိဖို့လုပ်တဲ့နည်းကို Domain Name System (DNS) လို့ခေါ်တယ်။ DNS ဘယ်လိုအလုပ်လုပ်လဲ အသေးစိတ် သိချင်တယ်ဆိုရင် အောက်ဖော်ပြပါ YouTube Video မှာလေ့လာနိုင်ပါတယ်။ ကာတွန်းလေးတွေနှင့်ရှင်းပြထားတဲ့ How DNS Work ဆိုတဲ့ website လည်းရှိတယ်… အတော်လေးကိုပြည့်စုံတယ်။ ကျွန်တော်တို့ domain name တစ်ခု register လုပ်လိုက်ပီဆိုရင် DNS Records တွေကိုအများကြီးထည့်လို့ရတယ်။ ကျွန်တော်တော့ Cloudflare နှင့် Digital Ocean […]

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, […]