문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
길이가 짝수인 문자열 s가 주어진다. 문자열을 길이가 같게 두 부분으로 나누고, 첫 번째 부분을 a, 두 번째 부분을 b라고 한다.
두 문자열은 모음('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')의 개수가 같으면 동일한 문자열이다. 문자열 s는 영어 대문자와 소문자 모두 포함한다.
a와 b가 동일하면 ture를 반환하고, 그렇지 않다면 false를 반환해라.
#1
Input: s = "book"
Output: true
Explanation: a = "bo", b = "ok"이다. a는 1개의 모음, b는 1개의 모음을 가진다. 따라서 a와 b는 동일하다.
#2
Input: s = "textbook"
Output: false
Explanation: a = "text", b = "book"이다. a는 1개의 모음, b는 2개의 모음을 가진다. 따라서 a와 b는 동일하지 않다.
class Solution {
public boolean halvesAreAlike(String s) {
Set<Character> vowels = new HashSet<>();
vowels.add('a');
vowels.add('e');
vowels.add('i');
vowels.add('o');
vowels.add('u');
vowels.add('A');
vowels.add('E');
vowels.add('I');
vowels.add('O');
vowels.add('U');
int count = 0;
int mid = s.length() / 2;
for(int i = 0; i < mid; i++){
char a = s.charAt(i);
char b = s.charAt(i + mid);
if(vowels.contains(a)){
count++;
}
if(vowels.contains(b)){
count--;
}
}
return count == 0;
}
}