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

news/发布时间2024/4/30 2:04:52

自己写的,双指针,一次通过

class Solution:def reverseVowels(self, s: str) -> str:# 将输入的字符串转换为列表s_list = list(s)# 定义元音字母列表vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']# 获取字符串的长度n = len(s_list)# 初始化左指针和右指针,分别指向字符串的开头和末尾left = 0right = n - 1# 初始化左指针和右指针是否指向元音字母的标志left_vowel = Falseright_vowel = False# 使用双指针法来反转字符串中的元音字母while left < right:# 如果左指针指向的字符是元音字母,则将 left_vowel 标志设置为 Trueif s_list[left] in vowels:left_vowel = Trueelse:# 否则,将左指针向右移动一位left += 1# 如果右指针指向的字符是元音字母,则将 right_vowel 标志设置为 Trueif s_list[right] in vowels:right_vowel = Trueelse:# 否则,将右指针向左移动一位right -= 1# 如果左指针和右指针都指向了元音字母if left_vowel and right_vowel:# 交换左指针和右指针指向的字符s_list[left], s_list[right] = s_list[right], s_list[left]# 重置左指针和右指针是否指向元音字母的标志left_vowel = Falseright_vowel = False# 同时将左指针向右移动一位,右指针向左移动一位left += 1right -= 1# 将列表转换回字符串并返回s_str = ''.join(s_list)return s_str

 gpt优化代码,精简:

class Solution:def reverseVowels(self, s: str) -> str:# 将输入的字符串转换为列表s_list = list(s)# 定义元音字母列表vowels = set('aeiouAEIOU')# 初始化左指针和右指针,分别指向字符串的开头和末尾left, right = 0, len(s_list) - 1# 使用双指针法来反转字符串中的元音字母while left < right:# 如果左指针指向的字符不是元音字母,则将左指针向右移动一位if s_list[left] not in vowels:left += 1# 如果右指针指向的字符不是元音字母,则将右指针向左移动一位elif s_list[right] not in vowels:right -= 1# 如果左右指针同时指向元音字母else:# 交换左右指针指向的字符s_list[left], s_list[right] = s_list[right], s_list[left]# 同时将左指针向右移动一位,右指针向左移动一位left += 1right -= 1# 将列表转换回字符串并返回return ''.join(s_list)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/45004786.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Unity组件

二、Mesh网格 1 Mesh Filter Mesh Filter 组件包含对网格的引用。该组件与同一个游戏对象上的 Mesh Renderer 组件配合使用;Mesh Renderer 组件渲染 Mesh Filter 组件引用的网格。用于将网格数据应用到 3D 模型上。它是实现 3D 模型的重要组成部分之一,可以定义模型的形状和结…

最好用的Python IDE,pycharm保姆级安装教程

简介 由于Python语法简单容易入门,并且Python在办公自动化等领域的功能非常强大,所以现在越来越多非IT行业的人也开始学起了Python,要学习和使用一门编程语言,一个好用的IDE是必不可少的,而对于Python来说,最好的IDE无疑是Pycharm。本文就给大家介绍一下如何从零到一来安…

2-58. 实现农作物的重复收割

修改 Crop修改 GridMapManager修改 EventHandler修改 GridMapManager修改 Crop修改 CropDataList_SO项目相关代码 代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git 标签:20240410_1825

uniapp转译微信小程序动态样式语法问题(:style)

这样书写之后编译成微信小程序时会出现一下情况造成此类原因是因为 我们直接给了一个对象而不是字符串(即直接给字符串不会出现此类问题) 而微信不能直接识别 所以直接在动态赋值时加上中括号

实验一-密码引擎-3-加密API研究

一、微软的Crypto API CryptoAPI 系统体系结构 Web Crypto API CSP开发基础--CryptoAPI函数简介 Crypto API结构 基本加密函数用于连接到 CSP 的_上下文函数_。 这些函数使应用程序能够按名称选择特定的 CSP,或选择可以提供所需功能类别的特定 CSP。 用于生成和存储加密密钥的…

实验一-密码引擎-加密API的研究

一、任务详情 密码引擎API的主要标准和规范包括: 1 微软的Crypto API 2 RAS公司的PKCS#11标准 3 中国商用密码标准:GMT 0016-2012 智能密码钥匙密码应用接口规范,GMT 0018-2012密码设备应用接口规范等 研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同…