题目
给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。
示例
输入:s = “hello”
输出:“holle”
输入:s = “leetcode”
输出:“leotcede”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:双指针
Java实现
class Solution {
public String reverseVowels(String s) {
int n = s.length();
List<Character> list = new ArrayList<>();
list.add('a');
list.add('e');
list.add('i');
list.add('o');
list.add('u');
list.add('A');
list.add('E');
list.add('I');
list.add('O');
list.add('U');
char[] cs = s.toCharArray();
int l = 0, r = n - 1;
while (l < r) {
while (l < r && !list.contains(cs[l])) l++;
while (l < r && !list.contains(cs[r])) r--;
char tmp = cs[l];
cs[l] = cs[r];
cs[r] = tmp;
l++;
r--;
}
return String.valueOf(cs);
}
}