문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
문자열 s가 주어졌을 때, 문자열에서 모음만 반전시켜 반환해라.
모음은 'a', 'e', 'i', 'o', 'u'이며, 소문자와 대문자 모두 여러번 나타날 수 있다.
#1
Input: s = "IceCreAm"
Output: "AceCreIm"
Explanation:
s의 모음은 ['I', 'e', 'e', 'A']이다. 모음의 순서를 바꾸면 s는 "AceCreIm"이 된다.
#2
Input: s = "leetCode"
Output: "leotCede"
class Solution {
public String reverseVowels(String s) {
char[] arr = s.toCharArray();
int start = 0;
int end = s.length() - 1;
while(start < end){
while(start < end && !isVowel(arr[start])){
start++;
}
while(start < end && !isVowel(arr[end])){
end--;
}
if(start < end){
char temp = arr[start];
arr[start++] = arr[end];
arr[end--] = temp;
}
}
return new String(arr);
}
public boolean isVowel(char c) {
c = Character.toLowerCase(c);
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
}