概述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
给定 s = "hello", 返回 "holle".
示例 2:
给定 s = "leetcode", 返回 "leotcede".
注意:
元音字母不包括 "y".
class Solution {
public:
string reverseVowels(string s) {
int i=0,j=s.length()-1;
while(i<j)
{
while((isVowel(s[i])==false)&&(i<j))
{
i++;
}
while((isVowel(s[j])==false)&&(i<j))
{
j--;
}
swap(s[i],s[j]);
i++;
j--;
}
return s;
}
bool isVowel(char c)
{
if((c=='a')||(c=='e')||(c=='i')||(c=='o')||(c=='u')||(c=='A')||(c=='E')||(c=='I')||(c=='O')||(c=='U'))
return true;
return false;
}
};
利用两个指针分别从首尾,类似快排
class Solution {
public:
string reverseVowels(string s) {
vector<int> v;
for(int i=0;i<s.size();i++){
if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u'||s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'){
v.push_back(i);
}
}
for(int i=0,j=v.size()-1;i<j;i++,j--){
swap(s[v[i]],s[v[j]]);
}
return s;
}
};
将含有元音字母的位置保存起来,然后交换原字符串中的对应的位置
最后
以上就是酷炫巨人为你收集整理的leetcode_345_反转字符串中的元音字母的全部内容,希望文章能够帮你解决leetcode_345_反转字符串中的元音字母所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复