给你一个字符串 s
,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 'a'
、'e'
、'i'
、'o'
、'u'
,且可能以大小写两种形式出现不止一次。
示例 1:
输入:s = "hello" 输出:"holle"
示例 2:
输入:s = "leetcode" 输出:"leotcede"
提示:
1 <= s.length <= 3 * 105
s
由 可打印的 ASCII 字符组成
class Solution {
public String reverseVowels(String s) {
Set<Character> vo = new HashSet<>(Arrays.asList('a','e','i','o','u','A','E','I','O','U'));
char[] cs = s.toCharArray();
int left=0;
int right=s.length()-1;
while(left<right){
if(!vo.contains(cs[left])){
left++;
}else if(!vo.contains(cs[right])){
right--;
}else{
char temp=cs[left];
cs[left]=cs[right];
cs[right]=temp;
left++;
right--;
}
}
return new String(cs);
}
}