编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:输入: "leetcode"
输出: "leotcede"
这道题目的关键就是找到元音字母,然后将元音字母进行交换,因为是反转,所以需要两个指针从前后来寻找元音字母,元音字母有aeiouAEIOU,当没找到时就移动指针直到找到元音字母或者指针越界。
class Solution {
public:
string reverseVowels(string s) {
int i=0;
int j=s.length()-1;
string tool="aeiouAEIOU";
while (i<j)
{
while (i<j &&
s[i] != 'a' && s[i] != 'e' && s[i] != 'i' &&
s[i] != 'o' && s[i] != 'u' && s[i] != 'A' &&
s[i] != 'E' && s[i] != 'I' && s[i] != 'O' &&
s[i] != 'U')
{
i++;
}
while (i<j &&
s[j] != 'a' && s[j] != 'e' && s[j] != 'i' &&
s[j] != 'o' && s[j] != 'u'&& s[j] != 'A' &&
s[j] != 'E' && s[j] != 'I' && s[j] != 'O' &&
s[j] != 'U')
{
j--;
}
char m = s[i];
s[i] = s[j];
s[j] = m;
i++;
j--;
}
return s;
}
};