LeetCode力扣刷题:345.反转字符串中的元音字母

每日一题:【力扣345】反转字符串中的元音字母——easy 【力扣345】反转字符串中的元音字母——easy前言LeetCode 345. 反转字符串中的元音字母解法一:双指针法——O(n)O(n)O(n)思路——双指针分别从两端往中间遍历,匹配并交换步骤——遍历取值 前言 本文旨在记录与分享个人的刷题经验,因水平受限,观点难免偏颇,欢迎大家在评论区交流意见 LeetCode 345. 反转字符串中的元音字母 给你一个字符串s,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括'a'、'e'、'i'、'o'、'u',且可能以大小写两种形式出现。 示例 1 阅读详情

思路一

正向遍历str一遍,用vector录入所有元音字母,再反向遍历str一遍,将vector中的字符正序填入str的元音字符位

#include<string>
#include<vector>

class Solution {
public:
    string reverseVowels(string s) {
        vector<char> vowels;
        for(int i=0;i<s.size(); i++){
            if(isVowel(s[i])){
                vowels.push_back(s[i]);
            }
        }
        vector<char>::iterator iter = vowels.begin();
        for(int i=s.size()-1 ; i>= 0&& iter!=vowels.end() ; i--){
            if(isVowel(s[i])){
                s[i]=*iter;
                iter++;
            }
        }
        return s;
    }
    bool isVowel(char ch){
        switch(ch){
            case 'a':
            case 'A':
            case 'e':
            case 'E':
            case 'I':
            case 'i':
            case 'o':
            case 'O':
            case 'u':
            case 'U':
                return true;
            default:
                return false;
        }
    }
};

思路二

双指针,头尾同时遍历

class Solution {
public:
    string reverseVowels(string s) {
        int i = 0, j = s.size() - 1;
        for (; i <= j; i++, j--) {
            if (isVowel(s[i]) && isVowel(s[j])) {
                char temp = s[i];
                s[i] = s[j];
                s[j] = temp;
            }
            else if (isVowel(s[i])) {
                --i;
            }
            else if (isVowel(s[j])) {
                ++j;
            }
        }
        return s;
    }
    bool isVowel(char ch){
        switch(ch){
            case 'a':
            case 'A':
            case 'e':
            case 'E':
            case 'I':
            case 'i':
            case 'o':
            case 'O':
            case 'u':
            case 'U':
                return true;
            default:
                return false;
        }
    }
};

心得

这道题不难,我第一个想到的解法是思路一,用时4ms,看了评论才知道可以双指针,按理说双指针运行时间应该更少啊,可是我的用了8ms!比vector还慢,想不通。

判断元音字母要单独写一个函数没有问题,可我写的空间复杂度有点高了。
在评论和题解中学到几个简单的

bool isVowel(char ch){
	return ch=='a'||ch=='A'||ch=='e'||ch=='E'||ch=='i'||ch=='I'||ch=='o'
        ||ch=='O'||ch=='u'||ch=='U';
}

还可以用字符串的find方法

  string vowels = "aeiouAEIOU";
        if(vowels.find(ch)==-1) return false;
        else return true;

这样也节省了搓代码的时间啊!

【c++】LeetCode345. 反转字符串中的元音字母 LeetCode345. 反转字符串中的元音字母 https://leetcode-cn.com/problems/reverse-vowels-of-a-string 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 指针对撞: 与125题类似(点击查看125题解),设置左右两个指针:l , r 分别指向字符串的开头和末尾,同 阅读详情

相关推荐

QQ的TEA填充算法C#实现 By Red_angelX

注:本人只是从LUMA QQ的 Source Code里面把相应Java语言翻译成C#,纯技术研究,并没有对TC产品做任何逆向分析,不承担任何法律责任!转载请保持本文完整性网上有c/c++,vb,delphi,java,perl各种版本的tea填充算法,唯独没有C#的,这让我这种狂热喜爱C#的人如何承受,于是,花3天时间看了各种代码经历无数失败的挫折终于用C#完成了该填充算法,废话不多说,直接

Red_angelX的专栏 1万+

力扣(leetcode)第345题反转字符串中的元音字符(Python)

最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现不止一次。给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。s 由 可打印的 ASCII 字符组成。输入:s = “leetcode”输入:s = “hello”输出:“leotcede”输出:“holle”

qq_58737789的博客 902

三维点云孔洞修复(附Python代码和公共点云数据集链接)

(1)物体自身缺失(2)物体自身形状复杂,很多凹凸面不够规则甚至存在空腔,空腔内部无法被三维激光扫描仪扫描到(3)物体部分区域对激光扫描不敏感,未被扫描上(4)扫描仪的扫描稳定性。

yanghl1215的博客 6953

力扣345-反转字符串中的元音字母

题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 class Solution { HashSet set = new HashSet(Arrays.asList('a','e','i','o','u','A','E','O','I','U')); public String reverseVowels(String s) { if(s==nu...

qq_1306238492的博客 208

silero-vad 训练自己的数据

silero-vad 训练自己的数据

jacke121的专栏 816

2025年GESP12月认证C++四级真题解析

摘要 本文包含11道C++编程题目,涵盖指针、数组、函数参数传递、结构体和排序算法等知识点。每题2分,总分30分,主要考察学生对C++基础语法的掌握程度。题目包括指针定义与解引用(第1-4题)、二维/三维数组遍历(第4-5题)、变量作用域(第6题)、函数传参方式(第7题)、结构体操作(第8题)、递归算法(第9题)和排序稳定性判断(第10题)。最后第11题要求补全选择排序算法代码片段。每道题均提供标准答案和详细解析,适合用于检验C++基础知识的掌握情况。

lan_in的博客 317

力扣(LeetCode) 345. 反转字符串中的元音字母

题目链接 题解 这题并没有很难,只要用两个指针,一个从头开始走,一个从尾巴开始走,然后碰到元音就停下来交换就好了 代码 class Solution { public: string reverseVowels(string s) { int i=0; int j=s.size()-1; while(i<j) { while(i<j&&s[i]!='a'&&amp.

silentdeathdance的博客 243

手把手教你学Simulink--基于未来出行解决方案的场景实例:电动飞行汽车(eVTOL)的动力系统建模与仿真

电动垂直起降飞行器零道路拥堵:三维空间飞行绿色低碳:全电驱动,零排放快速响应:城市内15分钟直达低噪音:相比直升机↓20dB📊 预测:2030年全球eVTOL市场规模将超300亿美元,中国、美国、欧洲加速适航认证。本文通过,构建了电动飞行汽车(eVTOL)动力系统高压电池系统建模电力电子(DC-DC、逆变器)实现PMSM电机+螺旋桨推进系统搭建完整飞行任务动态仿真性能KPI评估与优化。

MHD0815的博客 442

力扣 345. 反转字符串中的元音字母

题目 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。 示例 输入:s = “hello” 输出:“holle” 输入:s = “leetcode” 输出:“leotcede” 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

(ง •_•)ง没有困难的工作,只有勇敢的狗狗 1987

【即插即用模块】卷积篇 | CVPR 2025 | LSConv:大核捕全局,小核提速度,替换 3×3 卷积/自注意力,精度效率双飙升

文章摘要: LSConv是一种新型卷积模块,采用"大核感知+小核聚合"策略,在轻量级视觉任务中表现出色。该模块由两部分组成:7×7深度可分离卷积(LKP)捕捉全局信息,动态3×3卷积(SKA)实现高效特征聚合。相比传统卷积和自注意力机制,LSConv在降低计算量的同时提升了精度,尤其适合高分辨率视觉任务。实验表明,在轻量化模型中用LSConv替代3×3卷积或自注意力,可显著减少计算量并提高准确率。模块支持即插即用,提供Triton优化实现,可直接集成到现有卷积或Transformer架构

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1119

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

Leetcode345(力扣345):反转字符串中的元音字母

思路:搞清元音字母有哪些的情况下就变成了很简单的问题了,前后双指针遍历判断,进行交换 class Solution { public: string reverseVowels(string s) { if(s.empty()) return s; int p1=0; int p2=s.size()-1; while(p1<=p2) { if(check(s[p1])&

weixin_44537258的博客 295

RK3588开发笔记-ISP模块参数调试

本文详细介绍了基于RK3588平台的ISP模块参数调试流程。主要内容包括:硬件准备(RK3588板卡、IMX415摄像头等)、软件环境搭建(Ubuntu系统、RKISP_Tuner工具)、IMX415摄像头基础使用验证、RKISP2.x Tuner工具的使用方法(新建/加载IQ参数文件、Sensor配置、Raw图采集)以及最终IQ文件的部署。文章重点强调了基础标定的重要性,建议开发者分场景调试并参考官方文档,通过合理配置ISP参数来优化图像质量。该调试流程适用于RK3588平台的图像采集类项目开发。

flypig has a dream! 839

​LeetCode刷题实战345:反转字符串中的元音字母

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...

程序IT圈 182

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

qq_41760343的博客 225

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

leetcode刷题系列----模式1(Two Points 双指针)- 345:Reverse Vowels of a string反转字符串中的元音字母

Tips:定义两个指针,left和right java 和 c# 十分类似,感觉语法在互相降重,搞的晕头转向,一会大写一会小写,一会有括号一会没括号 python还是很高效 与官方思路求同存异,似乎两个逻辑存在一种运算关系 四种方法的代码如下: python class Solution: def reverseVowels(self, s: str) -> str: def isVowel(character: str) -> bool: r

My_Communication的博客 4444

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java实现 LeetCode 345 反转字符串中的元音字母

345. 反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 class Solution { public String reverseVowels(String s) { ...

南 墙 1万+

LeetCode第345题_反转字符串中的元音字母

本文解析LeetCode第345题"反转字符串中的元音字母",提供双指针解法及C#、Python、C++三语言实现。通过HashSet存储元音字母,双指针从两端向中间移动交换元音字母,时间复杂度O(n),空间复杂度O(1)。包含详细解题步骤、图解示例、性能对比及常见错误分析,适合初学算法的开发者掌握字符串操作技巧。

qq_40263592的博客 874

力扣刷题百天计划 Day9 反转字符串中的元音字母

我会持续更新我独特的算法思路,希望能给大家带来不一样的思维拓展! 如果大家感觉有帮助的话,欢迎点赞关注支持哦! 你们的鼓励是我坚持下去的动力! !!!

m0_48781656的博客 4527

345. 反转字符串中的元音字母-----leetcode刷题(python解题)

题目 解答 思路: leetcode解题 题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 1输入: "hello" 2输出: "holle" ...

jixn的博客 5248

第二次力扣刷题记录

记录自己刷题的过程,有问题、建议、想法、欢迎指出

朱一龙哥哥的博客 2112

LeetCode 345. 反转字符串中的元音字母

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

Michael是个半路程序员 1065

[C++]Leetcode345.反转字符串中的元音字母 (详解)

345.反转字符串中的元音字母 题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” class Solution { public: //定义一个子函数来判断当前字符是否是元音字母 bool isOraigin(char m) { if(m == 'a'||m == 'e'||m == 'i'||m == 'o'||m == 'u'||m == 'A'||m == 'E'||m == 'I'

cpb____的博客 1323

leetcode-345 | 反转字符串中的元音字母

title: leetcode-345 | 反转字符串中的元音字母 date: 2019-4-24 14:48:52 comments: true categories: “leetcode” tags: - leetcode 简单难度 345. 反转字符串中的元音字母(Reverse Vowels of a String) 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例1:...

梦否 511
上一篇: LeetCode力扣刷题:27.移除元素
下一篇: LeetCode力扣刷题:290.单词规律
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值