Write a function that takes a string as input and reverse >only the vowels of a string.
Example 1:
Given s = “hello”, return “holle”.Example 2:
Given s = “leetcode”, return “leotcede”.
思路:两个指针,一前一后判断交换,直到相遇
string vowel = "aAeEiIoOuU";
class Solution {
public:
string reverseVowels(string s) {
int prePointer = 0;
int laterPointer = s.size() - 1;
char temp;
while(prePointer < laterPointer)
{
while(prePointer < laterPointer && !isVowel(s[prePointer]))
{
prePointer++;
}
while(prePointer < laterPointer && !isVowel(s[laterPointer]))
{
laterPointer--;
}
if(prePointer >= laterPointer)
{
break;
}
//swap
temp = s[prePointer];
s[prePointer] = s[laterPointer];
s[laterPointer] = temp;
prePointer++;
laterPointer--;
}
return s;
}
bool isVowel(char inputChar)
{
int length = vowel.size();
for(int i=0;i<length;i++)
{
if(inputChar == vowel[i])
{
return true;
}
}
return false;
}
};