LeetCode 75 第五题(345)反转字符串中的元音字母

题目:

示例:

分析:

给一个字符串,将里面的元音字母反转,并且保持非元音字母不变(包括顺序).

字符串反转类型的题,我们都可以使用双指针来解决:定义首尾指针,分别向中间靠拢,直到首尾指针都指向了元音字母,然后交换首尾指针所指的字母,如此不会影响到非元音字母,同时也将元音字母反转了.

代码+结果如下:

cpp 复制代码
class Solution {
public:
    //判断是否为元音字母
    bool isY(char c){
        if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U'){
            return true;
        }
        return false;
    }
    string reverseVowels(string s) {
        int l=0;
        int r=s.size()-1;
        //双指针寻找首尾元音字母
        while(l<r){
            while(l<r&&!isY(s[l])) ++l; //左指针向右寻找元音字母
            while(l<r&&!isY(s[r])) --r; //右指针向左寻找元音字母
            char temp=s[l];
            s[l]=s[r];s[r]=temp;
            ++l;--r;            
        }
        return s;
    }
};
相关推荐
不做无法实现的梦~8 小时前
运动控制系统复习一览-----常考题目总结版本
算法
小短腿的代码世界8 小时前
信号路由风暴:Qt算法交易系统的高频信号分发架构
qt·算法·架构
阿文的代码库8 小时前
一文读懂GROUP BY 1,2 VS GROUP BY column_1, column_2 的区别
算法
欧米欧8 小时前
C++进阶数据结构之搜索二叉树
开发语言·数据结构·c++
青小莫8 小时前
C++之vector讲解
c++·stl
008爬虫实战录9 小时前
【码上爬】 题十:魔改算法 堆栈分析,找加密值过程详解
前端·python·算法
chao1898449 小时前
基于狮蚁群算法(ALO)的火电机组功能调度实现
人工智能·算法
Deep-w9 小时前
【MATLAB】含光伏 - 储能的家庭/工业微电网能量管理仿真研究
开发语言·算法·matlab
阿文的代码库9 小时前
换根技巧实例分析:最小高度树
算法·动态规划
dyxal9 小时前
Louvain 算法:让网络自己“报团取暖”的发现者
开发语言·算法