345.反转字符串中的元音字母

给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。

元音字母包括 'a''e''i''o''u',且可能以大小写两种形式出现。

示例 1:

1
2
输入:s = "hello"
输出:"holle"

Solution

先设置一个字符串来存储元音字符,然后设置双指针来遍历字符串s,把指针指向的字母和原因字符对比,就可以判断是否是元音字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {
public String reverseVowels(String s) {
int i=0;
int j=s.length()-1;
StringBuilder sb=new StringBuilder(s);

while(i<j){
while(i<j&&isVowel(sb.charAt(i))<0)
{
i++;
}

while(j>i&&!isVowel(sb.charAt(j))<0)
{
j--;
}

sb.setCharAt(i,s.charAt(j));
sb.setCharAt(j,s.charAt(i));

i++;
j--;
}
String x=sb.toString();
return x;
}

public int vowel(char ch) {
return "aeiouAEIOU".indexOf(ch);//如果不是的话,就回返回-1
}
}