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".
Subscribe to see which companies asked this question
代码一:
package com.study;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*******************************************************************
* 功能描述:
* 创建信息:jtm 2016-4-25
* 修改信息:
********************************************************************/
public class Solution {
public static String reverseVowels(String s) {
char[] c=s.toCharArray();
char[] c2=new StringBuffer(s).reverse().toString().toCharArray();
char[] temp =new char[c2.length];
int count=0;
for(int i=0;i<c2.length;i++){<span style="font-family: Arial, Helvetica, sans-serif;">//依次获取反转后的原音
if(c2[i]=='a'||c2[i]=='A'||c2[i]=='e'||c2[i]=='E'||c2[i]=='i'||c2[i]=='I'||c2[i]=='o'
||c2[i]=='O'||c2[i]=='u'||c2[i]=='U'){
temp[count++]=c2[i];
}
}
int count2=0;
for(int i=0;i<c.length;i++){<span style="font-family: Arial, Helvetica, sans-serif;">//替换
if(c[i]=='a'||c[i]=='A'||c[i]=='e'||c[i]=='E'||c[i]=='i'||c[i]=='I'||c[i]=='o'
||c[i]=='O'||c[i]=='u'||c[i]=='U'){
c[i]=temp[count2++];
}
}
return new String(c);
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=null;
s=br.readLine();
System.out.print(reverseVowels(s));
}
}
代码二:
package com.study;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static String reverseVowels(String str) {
//反转字符串
String reverseString = new StringBuilder(str).reverse().toString();
//依次获取反转后的原音
String vowels="";
for(int i=0;i<str.length();i++){
char c = reverseString.charAt(i);
if (c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U') {
vowels=vowels+c;
}
}
//替换
int t=0;
String result="";
for(int j=0;j<str.length();j++){
char c = str.charAt(j);
if (<span style="font-family: Arial, Helvetica, sans-serif;">c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U'</span>) {
result=result+vowels.charAt(t);
t++;
}else {
result=result+c;
}
}
return result;
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=null;
s=br.readLine();
System.out.print(reverseVowels(s));
}
}