###### tags: `String`, `Counting` # LeetCode 1704.Determine if String Halves Are Alike 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. - $-10^9 <= target <= 10^9$ - ```s``` consists of uppercase and lowercase letters. --- ### Idea: > ### Solution: Python: ```python= class Solution: def halvesAreAlike(self, s: str) -> bool: x = ['a','e','i','o','u'] s = s.lower() count=0 p =len(s)//2 for i in range(p): if s[i] in x: count+=1 for k in range(p,len(s)): if s[k] in x: count-=1 if count==0: return True else: return False ``` C++: ```cpp= ```