java数据结构与算法刷题-----LeetCode345. 反转字符串中的元音字母

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

在这里插入图片描述

思路一:双指针

可以使用双指针,不断从两个方向匹配值。两边都找到元音时,且下标正常(左下标<右下标),就交换位置
在这里插入图片描述

class Solution {
    public String reverseVowels(String s) {
         int length = s.length();//获取字符串长度
        int left = 0, right = length-1;//左右指针
        char[] arr=s.toCharArray();//将字符串转换为数组
        while(left<right){//左指针>右指针,退出循环
            //从左找到第一个元音
            while(left<length && !isVowels(arr[left])) left++;
            //从右找第一个元音
            while(right>0 && !isVowels(arr[right])) right--;
            if(left<right) {//如果满足左指针<右指针,就交换两个元音的位置
                swap(arr,left,right);
                //指针移动
                left++;
                right--;
            }
        }
        return new String(arr);
    }
    //如果是元音,就返回true
    public boolean isVowels(char c){
        return "aeiouAEIOU".indexOf(c) >= 0;//如果字符c,是vowels
    }
    //交换两个元素位置
    public void swap(char[] arr, int i, int j){
        // char temp = arr[i];
        // arr[i] = arr[j];
        // arr[j] = temp;
        arr[i]^=arr[j];
        arr[j]^=arr[i];
        arr[i]^=arr[j];
    }
}

刷题一定要坚持,总结套路,不单单要把题做出来,要举一反三,也要参考别人的思路,学习别人解题的优点,找出你觉得可以优化的点。

  1. 单链表解题思路:双指针、快慢指针、反转链表、预先指针
  1. 双指针:对于单链表而言,可以方便的让我们遍历结点,并做一些额外的事
  2. 快慢指针:常用于找链表中点,找循环链表的循环点,一般快指针每次移动两个结点,慢指针每次移动一个结点。
  3. 反转链表:通常有些题,将链表反转后会更好做,一般选用三指针迭代法,递归的空间复杂度有点高
  4. 预先指针:常用于找结点,比如找倒数第3个结点,那么定义两个指针,第一个指针先移动3个结点,然后两个指针一起遍历,当第一个指针遍历完成,第二个指针指向的结点就是要找的结点
  1. 数组解题思路:双指针、三指针,下标标记
  1. 双指针:多用于减少时间复杂度,快速遍历数组
  2. 三指针:多用于二分查找,分为中间指针,左和右指针
  3. 下标标记:常用于在数组范围内找东西,而不想使用额外的空间的情况,比如找数组长度为n,元素取值范围为[1,n]的数组中没有出现的数字,遍历每个元素,然后将对应下标位置的元素变为负数或者超出[1,n]范围的正数,最后没有发生变化的元素,就是缺少的值。
银行数据仓库体系实践(3)--数据架构 狭义的数据仓库数据架构用来特指数据分布,广义的数据仓库数据架构还包括数据模型、数据标准和数据治理。即包含相对静态部分如元数据、业务对象数据模型、主数据、共享数据,也包含相对动态部分如数据流转、ETL、整合、访问应用和数据全生命周期管控治理。 数据架构层面通过数据分类、分层部署等手段,从非功能性视角将数据合理布局。通过整体架构管控和设计,支持业务操作类和管理分析类应用(系统),满足业... 阅读详情

相关推荐

HackRF实战:用Portapack扩展板玩转GPS信号模拟(附固件刷写教程)

本文详细介绍了如何使用HackRF与Portapack扩展板进行GPS信号模拟,包括固件刷写、信号生成与发射配置等实战操作。通过专业工具和优化技巧,读者可以掌握软件无线电的高级应用,解决手机定位难题,同时强调安全合规使用的重要性。

weixin_28717431的博客 363

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

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

南 墙 1万+

OpenFOAM-多孔介质模型(porous media)

文章目录一、多孔介质(porous media)二、使用步骤1.达西定律2.Darcy-Forchheimer3.OpenFOAM fvOptions4.paraview动画每帧显示时间(Annotate Time)5.参考内容总结 一、多孔介质(porous media) 在流体力学中,流体流经多孔介质是指流体流经多孔介质时的行为方式,如海绵或木材,或使用沙子或其他多孔材料过滤水。 我们将展示如何设置多孔层,并使用OpenFOAM模拟流体通过该介质。 二、使用步骤 1.达西定律 达西定律最初是由达西通.

zq93538196的博客 9938

leetcode345. 反转字符串中的元音字母

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 思路:就是一趟双指针扫描。 class Solution { private final static HashSet<Character>...

少说,多做。 3023

别再乱短接了!OEC/OEC-turbo刷机救砖,用RKDevTool避开‘下载boot失败’的保姆级教程

本文提供OEC/OEC-turbo刷机救砖的终极指南,重点介绍使用RKDevTool避开‘下载boot失败’的详细步骤。从Loader模式的优势到硬件准备细节,再到分阶段刷机方案,帮助用户高效完成设备恢复,避免反复短接和常见误区。

weixin_29280657的博客 1105

【超详细】数据分析笔试题分享,可以收藏后仔细阅读_数据分析岗位笔试题目

这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。15、在某座城市出现了某种流行病,且已知某座城市男女人数相同,男性患该病的概率为5%,女性为0.25%,现已知该城市的小明得了此病,请问小明为男性的概率是() B。D项,使用方差作为特征评分标准,如果某个特征的取值差异不大,通常认为该特征对区分样本的贡献度不大,因此在构造特征过程中去掉方差小于阈值的特征。LTV,用户生命周期价值,是产品从用户获取到流失所得到的全部收益的总和。

2401_89824744的博客 949

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

文章目录题目代码 题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 代码 /* * @lc app=leetcode.cn id=345 lang=java * * [345] 反转字符串中的元音字母 */ ...

lingle1的博客 471

halcon第一讲:基本操作

本文通过Blob分析提取出图片中的硬币,来熟悉halcon的基本操作。 1、读取图像,halcon读取图像有三种方式:1)、文件-&gt;读取图像;2)、通过助手;3)、代码 *打开窗口 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) *读取图像 read_image (Image,'1.png') 读取的图像如下: 2...

qq_24946843的博客 3万+

【简单】力扣算法题解析LeetCode345:反转字符串中的元音字母

LeetCode 345 题要求反转字符串中的元音字母(含大小写),保持非元音字母位置不变。使用双指针法高效实现:初始化左右指针分别从首尾扫描,跳过非元音字符,当两指针均指向元音时交换,直至指针相遇。时间复杂度 O(n),空间复杂度 O(n)(字符数组存储)。关键点包括元音判断、指针移动逻辑及边界处理(如无元音或空字符串)。Java 实现通过预定义元音集合优化判断,确保一次遍历完成操作。

ylumwd的博客 323

Android 12.0 系统开机设置默认横屏显示

在12.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从两部分来实现,一部分是开机动画横屏显示,另一部分是系统显示横屏显示,从这两方面就可以做到开机默认横屏显示了。

安卓兼职framework和app工程师的博客 3743

【零基础入门unity游戏开发——3D篇】3D物理关节 —— Joint相关组件

【零基础入门unity游戏开发——3D篇】3D物理关节 —— Joint相关组件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1202

双指针题目:反转字符串中的元音字母

反转字符串可以使用双指针实现,两个指针分别从字符串的两端向中间移动,移动过程中完成反转。由于只反转元音字母,其他字符都不反转,因此双指针遍历的过程中需要跳过非元音字母的字符。,则当前下标的左边和右边的元音字母都已经反转,无论当前下标的字符是否为元音字母,整个字符串的元音字母都已经反转。需要遍历字符串中的每个字符一次,每次判断字符是否为元音字母以及交换操作的时间是。类型的数组,在数组中完成元音字母的反转,反转结束之后,将数组创建字符串对象并返回。,仅反转字符串中的所有元音字母,并返回结果字符串。

stormsunshine的博客 955

如何使用PostgreSQL数据库进行数据仓库的ETL操作

本文旨在为数据工程师、数据库管理员和分析师提供使用PostgreSQL进行数据仓库ETL操作的全面指南。ETL流程的基本原理PostgreSQL在ETL中的独特优势实际ETL实现的技术细节性能优化和最佳实践常见问题的解决方案首先介绍ETL和PostgreSQL的基本概念然后深入探讨核心技术和实现方法接着提供实际案例和代码示例最后讨论优化技巧和未来趋势ETL:提取(Extract)、转换(Transform)、加载(Load)的缩写,描述数据从源系统移动到目标数据仓库的过程。

2502_91592937的博客 873

反转字符中的元音字母的C语言,Python实现 "反转字符串中的元音字母" 的方法

#coding=utf-def reverseVowels(s):""":type s: str:rtype: str"""sStr = list(s)voList = {'a':, 'A':, 'e':, "E":, 'i':, "I":, 'o':, 'O':, 'u':, 'U':}front =length = len(sStr)back = length -while front &lt...

weixin_32242475的博客 488

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

算法修炼之路—【字符串】Leetcode 345 反转字符串中的元音字母

文章目录题目描述思路分析解题代码复杂度分析Github源码 题目描述 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例1: 输入: s = “hello” 输出: “holle” 示例2: 输入: s = “leetcode” 输出: “leotcede” 思路分析 难度是简单 ,我们首先要明确元音字母的涵盖范围{a, e, i, o, u},之后就是常规的条件判断是否为元...

技术更新每天 306

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

力扣小白刷题之345题反转字符串中的元音字母

题目描述 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 方法 双指针 使用双指针,一个指针从头向尾遍历,一个指针从尾巴到头遍历,当两个指针都遍历到元音字符时,交换。 为了快速判断一个字符是不是元音字符,将全部元音字符添加到集合HashSet中。 代码 自己需要补充的地方 String类型的 contains() 方法,判断字符串是否有子字符串。 final 关键字 修饰类 表示...

weixin_43525710的博客 307

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

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

漆黑梦工厂 354

力扣 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

20200320:反转字符串中的元音字母(leetcode345)

反转字符串中的元音字母题目思路与算法代码实现复杂度分析 题目 思路与算法 在复习没太多时间,因此随机一道中等难度以下的题,这道是一个很简单的双指针,不需要太多想法,直接双指针实现即可。 左指针从左边开始找元音字母,找到为止,右指针从右边开始找,找到为止,找到之后交换这两个原因字母,最好先将字符串转化为字符数组比较方便。 代码实现 package com.immunize.leetcode.r...

Mr IMMUNIZE的博客 323

Leetcode(java,python题解):345.反转字符串中的元音字符

Leetcode:345.反转字符串中的元音字符 题目描述 Leetcode:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/ 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: ...

_淡泊宁静的博客 215

Leetcode345:反转字符串中的元音字母

题目345:反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 解法1 对撞指针 public String reverseVowels(String s) { Character[] yuanyin = {'a', 'e'...

很好的坏人 273

345. 反转字符串中的元音字母(简单题)

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

闭关修炼 220

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

难度:简单⭐️⭐️⭐️。

快乐的小小程序猿 217

345. 反转字符串中的元音字母(java)

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

weixin_43306331的博客 501
上一篇: java数据结构与算法刷题-----LeetCode633. 平方数之和
下一篇: java数据结构与算法刷题-----LeetCode 680. 验证回文串 II
ydenergy_殷志鹏
博客等级 码龄7年 5886粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值