문자열 데이터가 하나 주어지는데 해당 데이터의 앞쪽 반과 뒤쪽 반이 Alike인지 구분하는 문제
Alike는 모음의 총 수가 같을 경우를 말한다.
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.
class Solution {
public:
bool halvesAreAlike(string s) {
int targetSize = (s.size() >> 1);
int rearIndex = (s.size() - 1);
int counter{0};
for (int i = 0; i < targetSize; i++)
{
if (IsBowel(s[i]))
{
counter++;
}
if (IsBowel(s[rearIndex - i]))
{
counter--;
}
}
return (counter == 0);
}
bool IsBowel(char &c)
{
switch (c)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
return true;
}
return false;
}
};