原题:
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".
分析:返回一个新的字符串,其中元音字符排序是原字符串中元音字符的逆序,其他字符顺序不变。
题目EASY,直接上代码:
public class Solution {
public String reverseVowels(String s) {
StringBuffer sb = new StringBuffer();
List<Character> vowel =new ArrayList<Character>();
vowel.add('a');
vowel.add('e');
vowel.add('i');
vowel.add('o');
vowel.add('u');
vowel.add('A');
vowel.add('E');
vowel.add('I');
vowel.add('O');
vowel.add('U');
List<Character> ls =new ArrayList<Character>();
for (int i = 0; i < s.length(); i++) {//将s中所有元音字符放入集合
if(vowel.contains(s.charAt(i)))
ls.add(s.charAt(i));
}
for (int i = 0; i < s.length(); i++) {
if(!vowel.contains(s.charAt(i)))
sb.append(s.charAt(i));//非元音字符直接拼接成字符串
else
sb.append(ls.remove((ls.size()-1)));//反向拼接元音字符
}
return sb.toString();
}
}