Determine if String Halves Are Alike

ㅋㅋ·2022년 12월 1일
0

알고리즘-leetcode

목록 보기
59/135

문자열 데이터가 하나 주어지는데 해당 데이터의 앞쪽 반과 뒤쪽 반이 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;
    }
};

0개의 댓글