Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Input: "hello" Output: "holle"
分析:
反转字符串中的元音字母。利用双指针法,分别从两端开始遍历,判断是不是元音字母,都是则交换,若有一方不是,则不是的一方指针向中间移动,直至两指针相遇。判断是否是元音字母只要判别是不是“a,e,i ,o,u,A,E, I, O, U”即可。
class Solution {
public:
string reverseVowels(string s) {
int left = 0;
int right = s.size()-1;
while(left < right)
{
if(IsVowels(s[left]) && IsVowels(s[right]))
swap(s[left++] , s[right--]);
else if(IsVowels(s[left]))
right--;
else
left++;
}
return s;
}
bool IsVowels(char a)
{
if(a=='a' || a=='e' || a=='i' || a=='o' || a=='u' || a=='A' || a=='E' || a=='I' || a=='O' || a=='U')
return true;
else
return false;
}
};