解题思路:
设置两个指针 left 和 right,大循环中的每一个循环,找到前面、后面两个元音字母,然后交换这两个元音。
class Solution {public:bool whethertrue(char& c){if(c == 'a' || c == 'A' || c == 'e' || c == 'E' || c == 'i' || c == 'I' || c == 'o' || c == 'O' || c == 'u' || c == 'U') return true;return false;}string reverseVowels(string s) {if(s.empty()) return s;int n = s.length();int left = 0;int right = n - 1;while(left < right){while(left < n &&!whethertrue(s[left])){left++;}while(right > 0 && !whethertrue(s[right])){right--;}if(left < right){char tmp = s[left];s[left] = s[right];s[right] = tmp;}left++;right--;}return s;}};