反轉(zhuǎn)字符串中的元音字母

https://leetcode-cn.com/problems/reverse-vowels-of-a-string/

需要元音字母保存起來,然后看是否字符串中的字符有這些元音字母。

也是用到了雙指針,因為需要交換,所以要定一個從左遍歷,一個從右遍歷,

如果不是元音的話,就直接放在新的字符串中,如果是元音的話,就和另外一個指針也是元音的交換順序。

class solution{

? ? private final static HashSet<Character> vowels = new HashSet<>(

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Arrays.asList('a','e','i','o','u','A','E','I','O','U'));

? ? public String reverseVowels(String s){

? ? ? ? if(s == null) return null;

? ? ? ? int i = 0;

? ? ? ? int j = s.length() - 1;

? ? ? ? char[] result = new char[s.length()];

? ? ? ? while( i <= j){

? ? ? ? ? ? char ci = s.charAt(i);

? ? ? ? ? ? char cj = s.charAt(j);

? ? ? ? ? ? if(!vowels.contains(ci)){

? ? ? ? ? ? ? ? result[i++] = ci;

? ? ? ? ? ? }

? ? ? ? ? ? else if(!vowels.contains(cj)){

? ? ? ? ? ? ? ? result[j++] = cj;

? ? ? ? ? ? }

? ? ? ? ? ? else{

? ? ? ? ? ? result[i++] = cj;

? ? ? ? ? ? result[j++] = ci;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return new String(result);

? ? }

}


定義了一個HashSet,之后要調(diào)用它的contains方法,判斷遍歷到的字符是否是元音

在new這個HashSet的時候用了Arrays.asList方法,并且還是用char的包裝類Character

過程中還使用了String的charAt方法,返回的是指定索引處的字符

? ??????????

?????????????

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容