345. Reverse Vowels of a String(Easy)
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
Note:
The vowels does not include the letter "y".
---------------------------------分割线-----------------------------
一道水题,reverse字符串中的元音字母。从字符串头第一个元音,再从字符串尾找一个元音,交换就可以了。直接上代码:
class Solution{
public:
string reverseVowels(string s){
const string vowels = "aeiouAEIOU";
int len = s.length();
int left = 0 , right = len-1;
while (left < right){
while (left < right && vowels.find(s[left]) == string::npos) left++;
while(left < right && vowels.find(s[right]) == string::npos ) right--;
if (left < right) swap(s[left],s[right]);
left++;
right--;
}
return s;
}
};
收工。
-------------------------分割线-----------------------------------
瞧了一眼题解,可以用string的find_first_of和find_last_of两个函数,更省事了。