题目
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例
- 示例 1:
输入: “hello”
输出: “holle” - 示例 2:
输入: “leetcode”
输出: “leotcede”
说明:
元音字母不包含字母"y"
C++代码
元音字母:a,e,i,o,u
注意题目中没有说大小写需要区分。设一个字符串temp=“aeiouAEIOU",两个指针:left(s的首位)和right(s的末位),当left和right上的元素都属于temp时(即都为元音字母),则交换。
class Solution {
public:
string reverseVowels(string s)
{
int left=0;
int right=s.length()-1;
while(left<right)
{
string tmp="aeiouAEIOU";
transform(tmp.begin(),tmp.end(),toupper);
if(tmp.find(s[left])==string::npos) left++;
else if(tmp.find(s[right])==string::npos) right--;
else
swap(s[left++],s[right--]);
}
return s;
}
};