leetcode Reverse String
阿新 • • 發佈:2018-12-25
leetcode Reverse String
解題思路:兩個指標,一個從前到後,一個從後到前,兩邊找到母音字母交換。
package com.algorithm.leetcode.twomonth; public class test55 { public static void main(String[] args) { String str="hello"; String s = reverseVowels(str); System.out.println(s); } public static String reverseVowels(String s) { int left=0; int right=s.length()-1; char[] chars = s.toCharArray(); while(left<right){ while(left<right&&!isYuanyin(chars[left])){ left++; } while(left<right&&!isYuanyin(chars[right])){ right--; } if(left<right){ swap(chars,left,right); left++; right--; } } return new String(chars); } public static void swap(char[] chars,int i,int j){ char temp; temp=chars[i]; chars[i]=chars[j]; chars[j]=temp; } public static boolean isYuanyin(Character 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; } } }