Algorithme - Tri rapide des idées pour inverser les voyelles dans une chaîne
Inversez les voyelles dans la chaîne
345. Inverser les voyelles dans une chaîne
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:
输入: "leetcode"
输出: "leotcede"
说明:
元音字母不包含字母"y"。
Tout le monde connaît le tri rapide, donc je ne dirai pas grand-chose, le corps principal semble n'avoir rien à voir avec le tri rapide, mais en fait, il est assez pertinent.
Quick row sélectionne le yuan pivot comme condition d'échange, et nous pouvons également utiliser la lettre voyelle comme condition d'échange.
public String reverseVowels(String s) {
if(s==null||s.length()<2){
return s;
}
char cs[]=s.toCharArray();
quickSwap(cs,0,cs.length-1);
return new String(cs);
}
public void quickSwap(char[] cs,int left,int right){
while(left<right){
while(left<right&&!suit(cs[right])){
right--;
}
while(left<right&&!suit(cs[left])){
left++;
}
if(left<right){
swap(cs,left,right);
}
left++;
right--;
}
}
private boolean suit(char c){
return c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U';
}
private void swap(char[] cs,int i,int j){
char temp=cs[i];
cs[i]=cs[j];
cs[j]=temp;
}