Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = “hello”, return “holle”.
Example 2:
Given s = “leetcode”, return “leotcede”.
反转元音字母,只需要做判断就行了,还是使用从两端向中间逼近的方法。
package test;
public class StringReserve2 {
public static String reverseVowels(String s) {
char[] c1 = s.toCharArray();
int i = 0, j = c1.length - 1;
while (i < j) {
if (isVowel(c1[j]) && isVowel(c1[i])) {
char tmp = c1[i];
c1[i] = c1[j];
c1[j] = tmp;
i++;
j--;
}
else if (!isVowel(c1[j]) && isVowel(c1[i]))
j--;
else if (isVowel(c1[j]) && !isVowel(c1[i]))
i++;
else{
i++;
j--;
}
}
return new String(c1);
}
public static boolean isVowel(char c) {
switch (c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
return true;
}
return false;
}
public static void main(String[] args) {
String s = "leetcode";
String reString = reverseVowels(s);
System.out.print(reString);
}
}
本文介绍了一种通过双指针技术实现字符串中元音字母反转的方法,并提供了完整的Java代码实现。该方法从字符串两端开始向中间遍历,仅当两端字符均为元音时进行交换。
1442

被折叠的 条评论
为什么被折叠?



