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

这篇具有很好参考价值的文章主要介绍了LeetCode 75 第五题(345)反转字符串中的元音字母。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:

LeetCode 75 第五题(345)反转字符串中的元音字母,LeetCode75题解,leetcode,算法,c++

示例:

LeetCode 75 第五题(345)反转字符串中的元音字母,LeetCode75题解,leetcode,算法,c++

分析:

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

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

LeetCode 75 第五题(345)反转字符串中的元音字母,LeetCode75题解,leetcode,算法,c++

 LeetCode 75 第五题(345)反转字符串中的元音字母,LeetCode75题解,leetcode,算法,c++

代码+结果如下:

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;
    }
};

LeetCode 75 第五题(345)反转字符串中的元音字母,LeetCode75题解,leetcode,算法,c++文章来源地址https://www.toymoban.com/news/detail-588433.html

到了这里,关于LeetCode 75 第五题(345)反转字符串中的元音字母的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【leetcode】541. 反转字符串 II

    给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 解答:

    2024年02月15日
    浏览(39)
  • leetcode-541. 反转字符串 II

    2024年02月16日
    浏览(41)
  • 【leetcode】344. 反转字符串(easy)

    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间, 你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 考察:字符串+双指针 解答 :

    2024年02月13日
    浏览(36)
  • ​LeetCode解法汇总344. 反转字符串

    https://github.com/September26/java-algorithms 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组  s  的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。 示例 1: 示例 2: 提示: 1 = s.length = 105

    2024年02月14日
    浏览(49)
  • Leetcode 75——1768.交替合并字符串 解题思路与具体代码【C++】

    1768. 交替合并字符串 - 力扣(LeetCode) 给你两个字符串  word1  和  word2  。请你从  word1  开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回  合并后的字符串  。 1 = word1.length, word2.length = 100

    2024年02月07日
    浏览(79)
  • 【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

    题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须 原地修改 输入数组,即不能新建一个数组来完成字符串的反转。我们注意到: 原来下标为0的,反转后是size - 1【原来下标是size - 1的,反转后是0】; 原来下标是1的,反转后是size - 2【原来下标是size -2的,反转后

    2024年02月11日
    浏览(45)
  • leetcode-344. 反转字符串、9. 回文数

    题目1: 解题方法 直接用reverse()即可 代码: 如果不用考虑改变原列表的话,还有一个方法: s[ : :-1] (字符串也可用此方式进行反转) 题目2:9. 回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)

    2024年01月17日
    浏览(37)
  • leetcode 151. 反转字符串中的单词

             这道题全面考察了字符串的一些操作,这里我的思路是: 先对字符串进行空格去除操作,这里要注意一个细节:先用for循环去除连续空格,再用if判断开头和结尾的空格。 再对没有异常空格的s 做一个反转操作。 再对每一个单词进行反转。 接下来先复习一下strin

    2024年02月09日
    浏览(55)
  • 【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符

     作者:小卢   专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》 目录  917. 仅仅反转字母  387. 字符串中的第一个唯一字符 917. 仅仅反转字母  题目描述: 给你一个字符串  s  ,根据下述规则反转

    2023年04月12日
    浏览(62)
  • Leetcode 557 反转字符串中的单词 III 简单

    给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 1. 原题链接 Leetcode 557 反转字符串中的单词 III 简单 2. 题目要求 示例 1: 输入:s = “Let’s take LeetCode contest” 输出:“s’teL ekat edoCteeL tsetnoc” 示例 2: 输入: s = “God Ding”

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包