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

概述

反转字符串中的元音字母

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

示例 1:

输入: "hello"
输出: "holle"

示例 2:

输入: "leetcode"
输出: "leotcede"

说明:
元音字母不包含字母"y"。


分析:

  • 是将单词中的元音序列反转
  • 元音包括a,e,i,o,u,A,E,I,O,U

解法1:双指针法,利用set判断是否是元音字符

class Solution {
public:
string reverseVowels(string s) {
set<char> a;
a.insert('a');
a.insert('e');
a.insert('i');
a.insert('o');
a.insert('u');
a.insert('A');
a.insert('E');
a.insert('I');
a.insert('O');
a.insert('U');
int i=0;
int j=s.size()-1;
while(i<j)
{
while(!(a.find(s[i])!=a.end())&&i<j)
i++;
while(!(a.find(s[j])!=a.end())&&i<j)
j--;
swap(s[i++],s[j--]);
}
return s;
}
};

解法2:更改了查找元音字符的查找方式

class Solution {
public:
bool find(char c)
{
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'
||c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U';
}
string reverseVowels(string s) {
int i=0;
int j=s.size()-1;
while(i<j)
{
while(!find(s[i])&&i<j)
i++;
while(!find(s[j])&&i<j)
j--;
swap(s[i++],s[j--]);
}
return s;
}
};

最后

以上就是贪玩大雁为你收集整理的leetcode反转字符串中的元音字母c++反转字符串中的元音字母的全部内容,希望文章能够帮你解决leetcode反转字符串中的元音字母c++反转字符串中的元音字母所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部