Leetcode题目:Reverse Vowels of a String
题目:
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
题目解答:
要求将字符串中所有的元音字母逆转,辅音字母的位置不受改变。
代码如下:
class Solution {
public:
string reverseVowels(string s) {
list<char> s_copy;
list<char> s_vowels;
int len = s.length();
for(int i = 0;i < len;i++)
{
if(isVowel(s[i]))
{
s_vowels.push_back(s[i]);
s_copy.push_back('a');
}
else
{
s_copy.push_back(s[i]);
}
}
s_vowels.reverse();
stringstream res;
list<char>::iterator voit = s_vowels.begin();
for(list<char>::iterator lit = s_copy.begin(); lit != s_copy.end();lit++)
{
if(*lit == 'a')
{
res << *voit;
voit++;
}
else
{
res << *lit;
}
}
return res.str();
}
bool isVowel(char c)
{
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
return true;
default:
return false;
}
}
};
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步