LeetCode_345_反转字符串中的元音字母

时间:2022-11-01 10:59:34


题目描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

输入示例1:
输入: "hello"
输出: "holle"
输入示例2:
输入: "leetcode"
输出: "leotcede"

说明:y不属于元音字母;大小写都要算
算法思想:双指针法,设置i,j两个指针分别从字符串两端查找,没找到元音字母,并且i<j,则继续寻找,直到找到后进行交换。设置一个set集合用于存放元音字符。

class Solution {
public:
string reverseVowels(string s) {
set<char> Set={'a','e','i','o','u','A','E','I','O','U'};
int i=0,j=s.size()-1;
while(i<j){
while(i<j&&!(Set.find(s[i])!=Set.end()))//find函数返回指针类型,没找到则会返回指向尾部的指针
i++;
while(i<j&&!(Set.find(s[j])!=Set.end()))
j--;
swap(s[i],s[j]);//完成交换后,需要将i和j都更新,指向下一个字符
i++;
j--;
}
return s;
}
};

LeetCode_345_反转字符串中的元音字母