LeetCode——反转字符串中的元音字母

2023-11-06

LeetCode——反转字符串中的元音字母

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

示例 1:

输入:“hello”
输出:“holle”
示例 2:

输入:“leetcode”
输出:“leotcede”

提示:

元音字母不包含字母 “y” 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

双指针法:
首先我们将所有元音字母的小写和大写都存储在一个列表yy中,便于判断遇到的字符是否是元音字母。
然后定义两个指针,一个指向字符串首端(start),一个指向字符串末端(end)。
我们遍历整个字符串,循环条件是start < end,在循环中,我们首先判断start和end指向的是否是元音字母,如果不是则更新指针的位置,如果都是元音字母则交换两个字母的位置。
因为我使用的是python语言,所以需要注意字符串是无法修改的,我们需要将s转换为列表,再对列表进行操作,结束后再把该列表转换回字符串,最后返回字符串s。

双指针法python代码:

class Solution(object):
    def reverseVowels(self, s):
        """
        :type s: str
        :rtype: str
        """
        yy = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
        s_list = list(s)
        start = 0
        end = len(s) - 1
        while start < end:
            if s[start] not in yy:
                start += 1
            if s[end] not in yy:
                end -= 1
            if s[start] in yy and s[end] in yy:
                s_list[start], s_list[end] = s_list[end], s_list[start]
                start += 1
                end -= 1
        s = ''.join(s_list)
        return s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode——反转字符串中的元音字母 的相关文章

  • 理解期货穿透式监管

    穿透式监管 关于就 关于进一步加强期货经营机构客户交易终端信息 采集有关事项的公告 公开征求意见的通知 期货公司客户交易终端信息采集及接入认证技术规范 简单理解就是 监控中心为了方便监管 需采集所有通过期货公司入场交易的客户的本地终端信息
  • 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

    从键盘读入个数不确定的整数 并判断读入的正数和负数的个数 输入为0时结束程序 题目描述 从键盘读入个数不确定的整数 并判断读入的正数和负数的个数 输入为0时结束程序 解题思路 因为读入的个数不确定 所以需要一个无限循环 当输入为 时 bre
  • leetcode237 删除链表中的节点

    题目 有一个单链表的 head 我们想删除它其中的一个节点 node 给你一个需要删除的节点 node 你将 无法访问 第一个节点 head 示例 输入 head 4 5 1 9 node 5 输出 4 1 9 解释 指定链表中值为 5 的
  • Windows环境MySql8.0忘记root密码重置

    MySQL忘记root密码之后 可以通过skip grant tables来暂时免密登录MySQL 从而修改root密码 但是这种方式一方面有安全隐患 另一方面也并不怎么适用于Windows系统 而且Windows环境下使用skip gra

随机推荐

  • ui-router---$stateProvider

    stateProvider stateProvider state stateName stateConfig Creates a new application state For alternate usage see Object b
  • 安卓逆向入门指南:介绍与准备

    安卓逆向入门指南 介绍与准备 简介 安卓逆向工程是指通过分析 修改和破解安卓应用程序 获取其内部逻辑 探索其实现细节或者进行二次开发的技术过程 在这个系列博客中 我们将介绍安卓逆向的基础知识 常用工具和技术 并通过实例演示来帮助初学者入门
  • 【超简单的串口通信的工作原理】

    下图是电脑收到单片机经过串口发送的信息 那么电脑是如何与单片机进行串口通信的呢 首先 任何一种通信都要包括硬件物理接口和软件通信协议 串口通信物理接口如下图 单片机通过发送端将数据从左往右一位一位按顺序发送 且在发送前 我们需要事先约定好帧
  • HTTPS(二):TLS/SSL四次握手及wireshark抓包分析

    1 TLS SSL四次握手流程图 HTTPS实现安全通信的方法就是在原有的HTTP层与TCP之间加入TLS SSL协议层 收发报文不再使用Socket API 而是调用专门的安全接口 在使用对称密钥加密通信之前 HTTPS需要先使用 密钥交
  • 字体号数与像素对应关系

    英文字体的1磅 相当于1 72 英寸 约等于1 2 8mm 12PT的字打印出来约为4 2mm 网页中12px的字才相当于12像素 虽然 四号 14 72 96 18 6px 更接近 19px 但是因为 18px 是点阵 所以系统还是优先显
  • 如何解决高并发,秒杀问题

    相信不少人会被这个问题困扰 分享大家一篇这样的文章 希望能够帮到你 一 秒杀业务为什么难做 1 im系统 例如qq或者微博 每个人都读自己的数据 好友列表 群列表 个人信息 2 微博系统 每个人读你关注的人的数据 一个人读多个人的数据 3
  • 交通领域开源数据集详细汇总

    一 交通领域开源数据集 1 NGSIM数据集 NGSIM 的全称为 Next Generation Simulation 是由美国联邦公路局发起的一项数据采集项目 被交通界学者广泛用于 车辆跟驰换道等驾驶行为研究 交通流分析 微观交通模型构
  • FPGA project : half_adder

    module half adder input wire data 1 input wire data 2 output reg count output reg sum always begin case data 1 data 2 2
  • 偶然看到DeepFaceLab(DeepFake)在2023年的新动向

    DeepFaceLab相关文章 一 简单介绍DeepFaceLab DeepFake 的使用以及容易被忽略的事项 二 继续聊聊DeepFaceLab DeepFake 不断演进的2 0版本 三 如何翻译DeepFaceLab DeepFak
  • 51单片机AD转换的程序

    void Read init unsigned char CHA unsigned char AD FIN 0 存储A D转换标志 CHA amp 0x07 选择ADC的8个接口中的一个 0000 0111 清0高5位 ADC CONTR
  • video标签常用控制配置,禁用单击暂停,保留双击全屏

  • 关于post()方法运行在哪个线程中

    android中我们常用的post new Runnable 有两种 1 view的post方法 运行在UI线程中 也就是主线程中 2 handler里面的方法运行在handler依附的线程中 可能是主线程 也可能是其他线程 下面是Hand
  • VSCode将一份代码同步到多台服务器的解决方案

    下载插件 首先去 VSCode 插件下载处输入 sftp 有三个 选择第二个 作者是 Natizyskunk 原版作者的仓库已经几年没维护了 有很多 bug 这个老外接手了这个插件并维护 配置config 按住 command shift
  • mac终端命令大全介绍

    OSX 的文件系统 OSX 采用的Unix文件系统 所有文件都挂在跟目录 下面 所以不在要有Windows 下的盘符概念 你在桌面上看到的硬盘都挂在 Volumes 下 比如接上个叫做 USBHD的移动硬盘 桌面上会显示出一个硬盘图标 它实
  • 『OPEN3D』1.1 点云处理 python篇

    目录 1 open3d中的点云IO 2 点云的可视化 3 点云voxel下采样 4 顶点法线估计 5 最小外界矩 6 凸包计算 7 点云距离计算 8 DBSCAN clustering聚类 9 RANSAC Random Sample Co
  • 棋盘问题 POJ - 1321 (回溯入门,八皇后问题)

    题目链接 AC代码 include
  • Js 递归查找数组中指定条件的一组对象;

    需求 在多维数组中查找指定条件的对象 且取出该对象内容数据 数组数据格式如下 实现 方法一 递归查找 getParentId list iid for let o of list if o category id iid return o
  • location.href&&window.open

    目录 location对象的定义和用法 常用的几种方法 window open 参数 返回值 document write Window focus 实例 location对象的定义和用法 href 属性是一个可读可写的字符串 可设置或返回
  • 系统提示“d3dx9_43.dll丢失、找不到”原因与解决方案

    相信很多朋友都有遇到过这种情况 在登陆游戏或打开某个软件时 系统会弹出一个窗口提示 d3dx9 43 dll丢失 或 d3dx9 43 dll找不到 出现这种情况一般是系统的不完整性导致 非正版系统比较容易出现此问题 也可能是此文件被误删
  • LeetCode——反转字符串中的元音字母

    LeetCode 反转字符串中的元音字母 题目描述 编写一个函数 以字符串作为输入 反转该字符串中的元音字母 示例 1 输入 hello 输出 holle 示例 2 输入 leetcode 输出 leotcede 提示 元音字母不包含字母