编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:“hello”
输出:“holle”
示例 2:
输入:“leetcode”
输出:“leotcede”
来源:力扣(LeetCode)
链接leetcode-345-翻转字符串中的元音字母
思路:
1.双指针法,前尾指针共同移动
2.先使用变长数组vector存储所有的元音字母
3.将left,right前后交换
代码:
class Solution {
public:
string reverseVowels(string s) {
int size=s.size();
if(size==0)
return s;
vector<char> array1{'a','e','i','o','u','A','E','I','O','U'};
int left=0;
int right=array1.size();
while(left<right)
{
while(find(array1.begin(),array1.end(),s[left])==array1.end())
{//退出的时候说明找到了元音字母
left++;
}
while(find(array1.begin(),array1.end(),s[right])==array1.end())
{//退出的时候说明找到了元音字母
right--;
}
char temp=s[left];
s[left]=s[right];
s[right]=temp;
left++;
right--;
}
return s;
}
};
进步:
看到翻转就要想到使用left right前尾指针——双指针