编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 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前尾指针——双指针