본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 1704. Determine if String Halves Are Alike

반응형

https://leetcode.com/problems/determine-if-string-halves-are-alike/

문자열을 다뤄본 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 모음의 개수를 반환하는 countVowel함수를 구현해줍니다.   1-1. 문자열 s의 원소를 순회하며 소문자로 치환된 결과가 모음인 문자들의 개수를 cnt에 세어 저장한 후 반환합니다.

📔 풀이과정

s의 길이는 짝수이며 같은 길이면서 모음의 개수가 같아야 하므로 문자열 a, b는 s.size() / 2만큼의 길이를 가지는 하나의 경우만을 가집니다. half size만큼 문자열을 잘라 a, b에 왼편과 오른편을 각각 저장해 줍니다.

📔 정답 출력 | 반환

countVowel의 결과가 같은지 여부를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int countVowel(string s) {
        int cnt = 0;
        for(auto el : s) {
            char c = tolower(el);
            if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') cnt++;
        }
        return cnt;
    }

    bool halvesAreAlike(string s) {
        int halfSize = s.size() / 2;
        string a = s.substr(0, halfSize);
        string b = s.substr(halfSize);
        return countVowel(a) == countVowel(b);
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.