【leetcode】345 反转字符串中的元音字母(字符串,双指针)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

题目链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/

题目描述

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

示例 1:

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

示例 2:

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

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

代码

class Solution {
public:
    string reverseVowels(string s) {
        int l = 0, r = s.size();
        unordered_set<char> m = {'a','e','i','o','u','A','E','I','O','U'};
        while(l < r){
            while(l<r && m.count(s[l]) == 0) ++l;
            while(l<r && m.count(s[r]) == 0) --r;
            if(l < r)
                swap(s[l++],s[r--]);
        }
        return s;
    }
};

在这里插入图片描述

[字符串][递归][双指针]leetcode344:反转字符串(easy) 题目: 题解: class Solution { public: //解法1:双指针法 void reverseString_1(vector<char>& s) { int i=0,j=s.size()-1;//双指针,两端同时向中间移动 while(i<j){swap(s[i],s[j]);++i;--j;} } ... 阅读详情

相关推荐

[Leetcode] 345. 反转字符串中的元音字母

111

技术小二郎的博客 2070

Leetcode 题解 - 双指针——反转字符串中的元音字符

Given s = "leetcode", return "leotcede". 使用双指针,一个指针从头向尾遍历,一个指针从尾到头遍历,当两个指针都遍历到元音字符时,交换这两个元音字符。 为了快速判断一个字符是不是元音字符,我们将全部元音字符添加到集合 HashSet 中,从而以 O(1) 的时间复杂度进行该操作。 时间复杂度为 O(N):只需要遍历所有元素一次 空间复杂度 O(1):只需要使用两个额外变量 private final static HashSet<Character&g

xiangqian0721的博客 513

Leetcode 刷题之路 之 算法思想 一、双指针 : 3) 345. 反转字符串中的元音字母

题目描述: 345. 反转字符串中的元音字母 难度:简单 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 思路: 1、因为要反转字母,所以从前 从后 分别来遍历字符串 2、双指针,和快速排序的思想很想,需要找到交换的条件 // 开始的想法:写的太粗糙了,很多直接用函数封装起来就行了 class.

qq_41760343的博客 224

LeetCode-day39-344反转字符串-双指针-easy-cpp

LeetCode-day39-344反转字符串-双指针-easy-cpp题目回顾题解cpp 题目回顾 传送门 编写一个函数,其作用是将输入的字符串反转过来。输入字符串字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","...

h1astro的博客 407

LeetCode #345 反转字符串中的元音字母 双指针

LeetCode #345 反转字符串中的元音字母 题目描述 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 思路分析 使用双指针,双向收缩,当两个指针都遍历到元音字符的时候交换。为了快速判断一个字符是不是元音字符,...

阿玮的博客 199

力扣345. 反转字符串中的元音字母(有限制的双指针,模板题)

力扣345. 反转字符串中的元音字母 题目描述: 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。 示例1️⃣: 输入:s = "hello" 输出:"holle" 示例2️⃣: 输入:s = "leetcode" 输出:"leotcede" 提示: 1 <= s.length <= 3 * 105 s 由 可打印的 ASCII 字符组成 解法:对双指针的滑动增加限制条件即可 clas

01解题者~博客 240

力扣(leetcode) 344. 反转字符串 345. 反转字符串中的元音字母 (双指针)

两道题目链接:https://leetcode-cn.com/problems/reverse-string/ https://leetcode-cn.com/problems/reverse-vowels-of-a-string/ 思路分析: 两道题目所用方法一样。 我们设置两个指针,头和尾,普通翻转字符串则直接交换头尾元素,然后两指针往中间移动。 当头尾指针重合(奇数个元素情况),或者头指针下一个是尾指针(偶数个元素情况)时 停止。 完整代码: class Solution: def rever

深度不学习!!的博客 472

leetcode 345 反转字符串中的元音字母 双指针

描述 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 思路 这种题目不难,但是要细心,不细心就出错。初始化两个指针分别指向开头和结尾,从两端往中间找元音字母,找到就交换。 注意:在判断条件中,越界判断一定要写在前面。 c...

yrk0556的博客 199

【力扣日记】345 反转字符串中的元音字母 | 双指针

题目描述 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 输入: “leetcode” 输出: “leotcede” 算法思路 第一时间想到的是遍历一遍字符串,把元音和辅音分开保存,然后翻转元音,两相组合,结果……怎么组合来着? 然后突然感觉不太对,这是道简单题来着?看了眼标签,【双指针】?OK懂了。 class Solution: def reverseVowels(self...

Heart_for_Ling的博客 469

【基础差和我一起手撕代码,通过大厂大公司机考笔试】LeetCode经典面试75题——第5题 345. 反转字符串中的元音字母 基础方法:双指针法{让我嚼碎代码喂你 嘿嘿嘿}

本文讲解LeetCode 345反转字符串中的元音字母。题目要求仅反转字符串中的元音字母(a/e/i/o/u大小写),其他字符位置不变。最优解法是双指针法:将字符串转为列表,使用左右指针从两端向中间遍历,找到元音后交换位置。时间复杂度O(n),空间复杂度O(n)。关键点包括:字符串转列表才能修改、元音大小写都要判断、指针移动需防越界、交换后要及时移动指针避免死循环。通过示例"hello"→"holle"演示了完整执行流程,并指出了常见错误如漏写大小写、忘记转列表等。

m0_46391680的博客 591

力扣345-反转字符串中的元音字母——双指针

给你一个字符串 ,仅反转字符串中的所有元音字母,并返回结果字符串元音字母包括 、、、、,且可能以大小写两种形式出现。

你好,时光的博客 346

c# leetcode 345. 反转字符串中的元音字母(双指针)

编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" while: public static string ReverseVowels(string s) { var ss = s.ToCharA...

us2019的博客 215

LeetCode345——字符串专题/双指针专题(5)反转字符串中的元音字母

反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入:“hello” 输出:“holle” 示例 2: 输入:“leetcode” 输出:“leotcede” 元音字母:AEIOU (1)方法1:双指针+HashSet的contains方法 class Solution { public static String reverseVowels(String s){ HashSet set = new HashSet();

qq_32559349的博客 250

LeetCode题解之双指针——【简单】345. 反转字符串中的元音字母

题目 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1 输入:"hello" 输出:"holle" 示例 2 输入:"leetcode" 输出:"leotcede" 题解 利用Set集合判断是否是元音字母 使用双指针,一个指针从头向尾遍历,一个指针从尾到头遍历,当两个指针都遍历到元音字符时,交换这两个元音字符 var reverseVowels = function (s) { let Array_s = s.split("") let litter = new

Notes 175

leetcode 345.反转字符串中的元音字母双指针 java)(有地方不懂)

https://leetcode-cn.com/problems/reverse-vowels-of-a-string/submissions/ 先定义一个boolean型数组,令所有元音(注意大小写,aeiouAEIOU)所在的ascii码为true,其他为false,将s转成字符串型(toCharArray()函数),双指针依次判断,遇到元音即交换。 class ...

weixin_30329623的博客 172

双指针LeetCode——345反转字符串中的元音字母

题目: 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string 方法一...

qq_35493320的博客 122

[每日算法 - 华为机试] leetcode345反转字符串中的元音字母双指针

方法一:双指针 思路与算法 我们可以使用两个指针 i 和 j 对字符串相向地进行遍历...

一辉的博客 228

力扣---指针题

双指针167. 两数之和 II - 输入有序数组1.要求2.思路633. 平方数之和1.要求2.思路345. 反转字符串中的元音字母1.要求2.思路680. 验证回文字符串 Ⅱ1.要求2.思路88. 合并两个有序数组1.要求2.思路141. 环形链表1.要求2.思路524. 通过删除字母匹配到字典里最长单词1.要求2.思路 167. 两数之和 II - 输入有序数组 1.要求 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2

dayday学习的博客 1219

Leetcode——345.反转字符串中的元音字母——题解+代码实现(双指针思想、find函数使用)

一、题目 编写一个函数,以字符串作为输入,反转字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 二、题解思路 题解思路:双指针,即同时开始(正方向、反方向),正方向遍历,反方向遍历,碰到元音则交换位置,否则继续往下查找。 三、代码实...

鬼刀 434
上一篇: 【leetcode】301 删除无效的括号(回溯)
zjwreal
博客等级 码龄8年 92粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值