345. 反转字符串中的元音字母
题干:
给你一个字符串 s
,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 'a'
、'e'
、'i'
、'o'
、'u'
,且可能以大小写两种形式出现不止一次。
提示:
1 <= s.length <= 3 * 105
s
由 可打印的 ASCII 字符组成
示例:
输入:s = "hello"
输出:"holle"
题解:
class Solution {
public:
bool check(char c) {
char s1[10] = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
for(int i = 0; i < 10; i++) {
if(c == s1[i]) return true;
}
return false;
}
string reverseVowels(string s) {
int i = -1, j = s.length();
while(i < j) {
do i++; while(!check(s[i]) && i < j);
do j--; while(!check(s[j]) && i < j);
if(i < j) {
swap(s[i], s[j]);
}
}
return s;
}
};