摘要:前言今天分享的是反轉(zhuǎn)字符串中的元音字母,原題目要求如下編寫一個函數(shù),以字符串作為輸入,反轉(zhuǎn)該字符串中的元音字母。
前言
今天分享的是反轉(zhuǎn)字符串中的元音字母,原題目要求如下:
編寫一個函數(shù),以字符串作為輸入,反轉(zhuǎn)該字符串中的元音字母。
示例 1:
輸入: "hello"
輸出: "holle"示例 2:
輸入: "leetcode"
輸出: "leotcede"說明:
元音字母不包含字母"y"。
補充說明:元音字母為A O E I U a o e i u
解題思路首先要注意,題目里的要求是把反轉(zhuǎn)字符串中的元音字母,以第一個示例為例子:
從字符串左邊遍歷的時候,遇到的第一個元音字母所在的索引為1。
而從字符串右邊右邊遍歷的時候,遇到的第一個元音字母所在的索引為4.
所以交換它們的位置、
而我的解題思路是把字符串切割成一個字符數(shù)組,從左右兩邊向中間逼近的方式訪問數(shù)組。每當檢索到左右兩邊的元音字母就交換位置,直到把所有元素都訪問一次后結(jié)束。
實現(xiàn)代碼/** * 元音字母列表 */ private char[] vowels={"a","o","e","i","u","A","O","E","I","U"}; /** * 反轉(zhuǎn)字符串中的元音字母 * @param s * @return */ public String reverseVowels(String s) { char[] chars=s.toCharArray(); int length=chars.length;//未訪問的元素個數(shù) int leftIndex=0;//從左邊訪問數(shù)組時的索引,模擬指針 int rightIndex=length-1;//從右邊訪問數(shù)組時的索引,模擬指針 boolean leftMatch=false;//是否找到符合條件的元素的標志 boolean rightMatch=false;//是否找到符合條件的元素的標志 while(length>0){//當未訪問元素為0則無需檢索元素 if(isVowel(chars[leftIndex])){//判斷從左邊開始遍歷到元素是否為元音字母 leftMatch=true;//若是,則記錄下標識。停留原位 }else{ ++leftIndex;//向右邊逼近 --length;//未訪問元素個數(shù)減1 } if(isVowel(chars[rightIndex])){//判斷從左邊開始遍歷到元素是否為元音字母 rightMatch=true;//若是,則記錄下標識。停留原位 }else{ --rightIndex;//向左邊逼近 --length;//未訪問元素個數(shù)減1 } if(leftMatch && rightMatch){//若左右都找到元音字母 //交換位置上的元素 char tmp=chars[leftIndex]; chars[leftIndex]=chars[rightIndex]; chars[rightIndex]=tmp; //重置標志位 leftMatch=false; rightMatch=false; ++leftIndex;//向右邊逼近 --rightIndex;//向左邊逼近 length=length-2;//未訪問元素個數(shù)減2 } } return String.valueOf(chars); } /** * 判斷是否為元音字母 * @param c * @return */ private boolean isVowel(char c){ for(char vowel:vowels){ if(vowel==c){ return true; } } return false; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76843.html
摘要:描述編寫一個函數(shù),以字符串作為輸入,反轉(zhuǎn)該字符串中的元音字母。示例輸入輸出示例輸入輸出說明元音字母不包含字母。找到所有的元音字母索引,第一個索引對應(yīng)的元素和最后一個索引對應(yīng)的元素交換,第二個和倒數(shù)第二個交換,第三個和倒數(shù)第三個交換。 Description Write a function that takes a string as input and reverse only th...
前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項2 88 合并兩個有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...
摘要:中的算法附道面試常見算法題解決方法和思路關(guān)注每日一道面試題詳解面試過程通常從最初的電話面試開始,然后是現(xiàn)場面試,檢查編程技能和文化契合度。值得記住的數(shù)組方法有和。一個好的解決方案是使用內(nèi)置的方法。 JavaScript中的算法(附10道面試常見算法題解決方法和思路) 關(guān)注github每日一道面試題詳解 Introduction 面試過程通常從最初的電話面試開始,然后是現(xiàn)場面試,檢查編程...
摘要:在線網(wǎng)站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
摘要:第五題對稱二叉樹難度簡單給定一個二叉樹,檢查它是否是鏡像對稱的。第十六題最大連續(xù)的個數(shù)難度簡單給定一個二進制數(shù)組,計算其中最大連續(xù)的個數(shù)。第十八題平方數(shù)之和難度簡單給定一個非負整數(shù),你要判斷是否存在兩個整數(shù)和,使得。 寫在前面 最近忙著調(diào)教新裝備,沒有及時的寫題解,但是沒有在偷懶沒刷題喔~來認真整理下最近做的題目~ 之前考慮按tag來刷題,后來收到了推薦的leetcode題解,就根據(jù)上...
閱讀 3226·2021-10-13 09:40
閱讀 3688·2019-08-30 15:54
閱讀 1309·2019-08-30 13:20
閱讀 2993·2019-08-30 11:26
閱讀 475·2019-08-29 11:33
閱讀 1099·2019-08-26 14:00
閱讀 2356·2019-08-26 13:58
閱讀 3366·2019-08-26 10:39