【一天一道LeetCode】#345. Reverse Vowels of a String

一天一道LeetCode

本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github
欢迎大家关注我的新浪微博,我的新浪微博
欢迎转载,转载请注明出处

(一)题目

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”.

(二)解题

题目大意:将字符串中的元音字母反转位置。
解题思路:用两个指针i和j,分别从头尾开始向中间扫描,每当碰到一个元音字母就停下来,交换位置,然后两个继续向中间扫描。
具体思路看代码。

class Solution {
public:
    string reverseVowels(string s) {
        int i =0;
        int j =s.length()-1;
        while(i<=j)
        {
            while((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')) i++;//找到第一个元音字母时停止
            while((s[j]!='a')&&(s[j]!='e')&&(s[j]!='i')&&(s[j]!='o')&&(s[j]!='u')&&(s[j]!='A')&&(s[j]!='E')&&(s[j]!='I')&&(s[j]!='O')&&(s[j]!='U')) j--;//找到第一个元音字母时停止
            if(i<=j){//如果i<=j,则交换位置
                char temp = s[i];
                s[i] = s[j];
                s[j] = temp;
                i++;j--;//继续往中间扫描
            }
        }
        return s;
    }
};

推荐文章

与设置段寄存器混淆

与设置段寄存器混淆

推荐文章

移动和web应用程序的共享代码库?

移动和web应用程序的共享代码库?

推荐文章

ConcurrentDictionary陷阱-GetOrAdd和AddOrUpdate的委托工厂是否同步?

ConcurrentDictionary陷阱-GetOrAdd和AddOrUpdate的委托工厂是否同步?

推荐文章

如何标记链接,用javascript处理访问?

如何标记链接,用javascript处理访问?

推荐文章

产品源上的Xml类别

产品源上的Xml类别

推荐文章

VMware ESXi:自动重启VM

VMware ESXi:自动重启VM

推荐文章

在配置单元中设置属性变量

在配置单元中设置属性变量

推荐文章

更改Camel TestSupport中的log4j设置

更改Camel TestSupport中的log4j设置

推荐文章

Boost程序选项Add Options语法

Boost程序选项Add Options语法

推荐文章

以特定尺寸打印DIV

以特定尺寸打印DIV

推荐文章

在MySQL数据库中使用LINQ,可以在生产中更改

在MySQL数据库中使用LINQ,可以在生产中更改

推荐文章

Colorbox onClosed函数可影响父页

Colorbox onClosed函数可影响父页

推荐文章

取决于iOS市场的本地化

取决于iOS市场的本地化

推荐文章

XML模式选择和属性

XML模式选择和属性

推荐文章

共点火器ajaxfileupload.js脚本错误-您没有选择要上载的文件

共点火器ajaxfileupload.js脚本错误-您没有选择要上载的文件

推荐文章

异步http客户端(ning)创建更多线程?

异步http客户端(ning)创建更多线程?