345. Reverse Vowels of a String
思路:首尾指针,如果指向元音字母,将其调换
class Solution { public: string reverseVowels(string s) { int start = 0, end = s.length() - 1; while(start < end) { while(1==1){ if(!judge(s[start])) start++; else break; } while(1==1) { if(!judge(s[end])) end--; else break; } // std::cout << s[start] << "---" << s[end] << std::endl; // std::cout << start << "---" << end << std::endl; if(start > end) //如果在hello中第一次交换e和o之后再次进入进入o和e的情形下跳出循环 break; char temp = s[start]; s[start] = s[end]; s[end] = temp; // reverse(s[start],s[end]); start++; end--; } return s; } bool judge(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U'; } };