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 (
'U'). Notice that
s contains uppercase and lowercase letters.
b are alike. Otherwise, return
Input: s = "book" Output: true Explanation: a = "bo" and b = "ok". a has 1 vowel and b has 1 vowel. Therefore, they are alike.
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.
Input: s = "MerryChristmas" Output: false
Input: s = "AbCdEfGh" Output: true
2 <= s.length <= 1000
sconsists of uppercase and lowercase letters.
Time complexity: O(n)
Space complexity: O(1)
# Author: Huahua
def halvesAreAlike(self, s: str) -> bool:
def count(s: str) -> int:
return sum(c in 'aeiouAEIOU' for c in s)
n = len(s)
return count(s[:n//2]) == count(s[n//2:])