Leetcode75 345反转字符串中的元音字母
345反转字符串中的元音字母
给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 ‘a’、’e’、’i’、’o’、’u’,且可能以大小写两种形式出现不止一次。
示例 1:
输入:s = "hello"
输出:"holle"
示例 2:
输入:s = "leetcode"
输出:"leotcede"
提示:
- 1 <= s.length <= 3 * 105
- s 由 可打印的 ASCII 字符组成
Solution 1
class Solution {
public String reverseVowels(String s) {
StringBuilder sBuilder = new StringBuilder(s);
int start = 0, end = s.length() - 1;
while (start < end) {
while (start < end && !isVowel(sBuilder.charAt(start))) {
start++;
}
while (start < end && !isVowel(sBuilder.charAt(end))) {
end--;
}
char temp = sBuilder.charAt(start);
sBuilder.setCharAt(start, sBuilder.charAt(end));
sBuilder.setCharAt(end, temp);
start++;
end--;
}
return sBuilder.toString();
}
private boolean isVowel(char c) {
boolean result = false;
switch (c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
result = true;
break;
default:
break;
}
return result;
}
}