본문 바로가기

Problem Solving/Leet Code

1704 Determine if String Halves Are Alike

이 문제는 주어진 문자열을 이등분한 후, 각 문자열에 포함된 모음의 수가 같으면 true를 반환하는 문제다

별다른 거 할 필요 없이 문제 그대로 구현하면 된다.

C++

더보기

 

class Solution {
public:
    bool halvesAreAlike(string s) {
        map<char,int> score;
        score['a'] = 1; score['e'] = 1; score['i'] = 1; score['o'] = 1; score['u'] = 1;
        score['A'] = 1; score['E'] = 1; score['I'] = 1; score['O'] = 1; score['U'] = 1;
        int a = 0, b = 0;
        
        for(size_t i = 0; i < s.length() / 2; ++i)
            a += score[s[i]];
        
        for(size_t i = s.length() / 2; i < s.length(); ++i)
            b += score[s[i]];
        return a == b;
    }
};

Python

더보기
class Solution:
    def halvesAreAlike(self, s: str) -> bool:
        str1 = s[:len(s)//2]
        str2 = s[len(s)//2:]
        
        score = ['a','e','i','o', 'u', 'A', 'E', 'I', 'O', 'U']
        
        a = 0
        b = 0
        for i in range(len(str1)):
            if str1[i] in score:
                a += 1
            if str2[i] in score:
                b += 1
        return a == b
            
728x90