leetcode 345.反轉字串中的母音字母
阿新 • • 發佈:2018-11-22
題目描述:
編寫一個函式,以字串作為輸入,反轉該字串中的母音字母。
思路:從前往後找到一個母音字母,再從後往前找到一個母音字母,然後把他們對換;持續這個操作,直到前後兩個方向遍歷到同一個位置。由於每個元素都訪問一次,複雜度應該是O(n)。
inline bool isVowel(char c) { if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i' ||c=='I'||c=='o'||c=='O'||c=='u'||c=='U') return true; return false; } string reverseVowels(string s) { int i=0,j=s.size(); while(i<j) { //分別從前面和後面找到一個母音字母 while(i<j && !isVowel(s[i])) i++; while(j>i && !isVowel(s[j])) j--; //對調 if(i<j) swap(s[i++],s[j--]); } return s; }