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