题目描述:
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
方法一:
class Solution {
public:
string reverseVowels(string s) {
int left = 0;
int right = s.size()-1;
string str = "aeiouAEIOU";
while(left < right)
{
while(str.find(s[left])==-1 && left<right)
{
left++;
}
while(str.find(s[right])==-1 && left<right)
{
right--;
}
if(left<right)
//有必要再次判断一下,防止left大于等于right
{
swap(s[left++] , s[right--]);
//交换的过程中顺便移动指针
}
}
return s;
}
};
虽然这题挺简单的,不过当我在括号里复制粘贴地判断是否为元音字母后,看到评论区里的这种方法,顿时感叹厉害!这么简单的判断方法,而且又简洁好看!昨天还刚用过find()函数,还是自己题目做少了,没能想到这种方法。
另外吐槽一下,英文版的题目中给了什么是元音字母,以及元音字母包括大小写,中文版的题目是都翻译到哪里去了。