我是靠谱客的博主 酷炫巨人,最近开发中收集的这篇文章主要介绍leetcode_345_反转字符串中的元音字母,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 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_反转字符串中的元音字母所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部