Back to all solutions
#1704 - Determine if String Halves Are Alike
Problem Description
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.
Solution
/**
* @param {string} s
* @return {boolean}
*/
var halvesAreAlike = function(s) {
const vowels = new Set(['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']);
let firstHalfVowels = 0;
let secondHalfVowels = 0;
const mid = s.length / 2;
for (let i = 0; i < mid; i++) {
if (vowels.has(s[i])) firstHalfVowels++;
if (vowels.has(s[i + mid])) secondHalfVowels++;
}
return firstHalfVowels === secondHalfVowels;
};