题目描述:
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”.
此题很简单,就是把字符串中的元音字母反转,但是本宝宝却把它做复杂了。大神勿喷,后面有时间会改进的。
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
public class Solution {
public String reverseVowels(String s) {
char[] a=s.toCharArray();
HashMap<Integer,String> hashMap = new LinkedHashMap<Integer, String>();
char[] temp=new char[a.length];
int k=0;
for(int i=0;i<a.length;i++){
if((a[i]=='a')||(a[i]=='A')||(a[i]=='E')||(a[i]=='I')||(a[i]=='O')||(a[i]=='U')||(a[i]=='e')||(a[i]=='i')||(a[i]=='o')||(a[i]=='u')){
hashMap.put(i,String.valueOf(a[i]));
temp[k]=a[i];
k++;
}
}
char[] bb=new char[hashMap.size()];
int j=0;
for(int i=hashMap.size()-1;i>=0;i--){
bb[j]=temp[i];
j++;
}
int kk=0;
Iterator iterator=hashMap.keySet().iterator();
while(iterator.hasNext()){
Integer key=(Integer) iterator.next();
a[key]=bb[kk];
kk++;
}
return String.valueOf(a);
}
}