မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။
ကျနော်တို့ဒီနေ့ရှင်းမယ့် ပြဿနာက 1704. Determine if String Halves Are Alike ဆိုတဲ့ leetcode question ဘဲဖြစ်ပါတယ်။
You are given a string s of even length. Split this string into two halves of equal lengths, and let a be the first half and b be the second half.
Two strings are alike if they have the same number of vowels ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'). Notice that s contains uppercase and lowercase letters.
Return true if a and b are alike. Otherwise, return false.
Example 1:
Input: s = "book"
Output: true
Explanation: a = "bo" and b = "ok". a has 1 vowel and b has 1 vowel. Therefore, they are alike.
Example 2:
Input: s = "textbook"
Output: false
Explanation: a = "text" and b = "book". a has 1 vowel whereas b has 2. Therefore, they are not alike.
Notice that the vowel o is counted twice.
Constraints:
2 <= s.length <= 1000
s.length is even.
s consists of uppercase and lowercase letters.
မေးခွန်းကရှင်းပါတယ်။ string တခုပေးထားမယ်။ အဲ့ string ကိုတဝက်ဝက်ပီးတော့ ဘယ်ညာ ၂ ဖတ်လုံးမှာ vowels ပါတာညီရင် true
ပြန်ပေးမဟုတ်ဘူးဆိုရင် false
ပြန်ပေးရမှာ။ vowels တွေက lowercase လဲဖြစ်နိုင်သလို uppercase လဲဖြစ်နိုင်တယ်။ constraints တွေက ပေးထားတဲ့ string length က 2 ထက်ကြီးမယ် 1000 နှင့်အောက်ဖြစ်မယ်။ string ရဲ့length က even ဖြစ်မယ်။
ကျနော်က အောက်ဖော်ပြပါအတိုင်းရှင်းလိုက်ပါတယ်။
/**
* @param {string} s
* @return {boolean}
*/
var halvesAreAlike = function(s) {
let leftVowelsCount = 0, rightVowelsCount = 0;
const vowels = "aeiouAEIOU"
const middle = s.length / 2
for(let i=0; i < s.length; i++) {
if(vowels.includes(s[i])) {
i < middle ? leftVowelsCount++ : rightVowelsCount++;
}
}
return leftVowelsCount == rightVowelsCount
};
ဘယ်ဘက်နှင့်ညာဘက်ဆိုပီး variable သတ်မှတ်လိုက်တယ်။ s length ကိုမစစ်တော့ဘူးဘာလို့လဲဆိုတော့ constraints ပေးထားတာကဂရုစိုက်စရာမလိုဘူးဆိုလို့ပါ။ နောက် middle ကိုလဲ floor
လုပ်မထားဘူး သူ့ constraint ကြောင့်မလို့။