编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:
输入: "leetcode"
输出: "leotcede"
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
可恶啊,这题用双指针!
一个从头开始一个从尾开始,遇到元音字母就停下,等待另一个也遇到元音字母。然后交换一个指针后移,一个指针前移
package aboutString; import java.util.Scanner; public class ReverseVowels { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); String s= in.nextLine();//im_on_iaul String ans = reverseVowels(s); System.out.println(ans); } public static String reverseVowels(String s) { char [] ch = s.toCharArray(); int i=0,j=ch.length-1; char tmp; while(i<j) { while(i<j && isVowels(ch[i])==false) { i++; } while(i<j&& isVowels(ch[j])==false) { j--; } tmp = ch[i]; ch[i]=ch[j]; ch[j]=tmp; i++; j--; } return String.valueOf(ch) ; } public static boolean isVowels(char c) { if(c ==‘a‘||c ==‘e‘||c ==‘i‘||c ==‘o‘||c ==‘u‘|| c ==‘A‘||c ==‘E‘||c ==‘I‘||c ==‘O‘||c ==‘U‘) return true ; else { return false; } } }
原文:https://www.cnblogs.com/cocobear9/p/12695334.html