社区首页 >问答首页 >仅反转字符串中的元音

仅反转字符串中的元音
EN

Stack Overflow用户
提问于 2021-03-18 09:53:04
回答 2查看 83关注 0票数 0

给定一个字符串,我只想颠倒元音,而让剩下的字符串保持原样。如果输入为fisherman,则输出应为fashermin。我尝试了以下代码:

代码语言:javascript
代码运行次数:0
复制
a=input()
l=[]
for i in a:
    if i in 'aeiou':
        l.append(i)
siz=len(l)-1
for j in range(siz,-1,-1):
    for k in a:
        if k in 'aeiou':
            a.replace(k,'l')
print(a)

应该对此代码进行哪些更改才能获得所需的输出?

EN

回答 2

Stack Overflow用户

发布于 2021-03-18 11:54:42

代码中的逻辑错误很少。

您需要在另一个字符串a= a.replace(k,'l')中保存

  • .replace函数的o/p

  • 'l‘是一个字符串。我确信你想要的是列表访问,所以正确的语法是:a= a.replace(k,l[j])

  • 替换时如果使用相同的字符串(在本例中为字符串'a‘),将导致所有元音都替换为相同的元音。

使用与您使用的相同的变量名,以下是正确的方法之一:

代码语言:javascript
代码运行次数:0
复制
a=input()
l=""

for i in a:
    if i in 'aeiouAEIOU':
        l+=i
        
new_a = ""
for k in a:
    if k in "aeiouAEIOU":
        new_a += l[-1]
        l = l[:-1]
    else:
        new_a += k
print(a)
print(new_a)
票数 0
EN

Stack Overflow用户

发布于 2021-03-18 11:58:51

将你的单词转换成一个字母列表并返回会更容易一些:

代码语言:javascript
代码运行次数:0
复制
a=input('Enter word: ')
l=[]
for i in a:
    if i in 'aeiou':
        l.append(i)
letters = list(a)
for i in range(len(letters)):
    if letters[i] in 'aeiou':
        letters[i] = l.pop(-1)

print(''.join(letters))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66688611

复制
相关文章
leetcode之反转字符串中的元音字母
这里先使用HashSet存放大小写的元音字母,之后使用头尾指针同时对字符串数组进行遍历,当i指向的字符与j指向的字符都是元音时,进行交换同时更新指针,不是元音字符时仅仅更新指针。
code4it
2020/11/08
9040
leetcode之反转字符串中的元音字母
345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入:"hello" 输出:"holle" 示例 2: 输入:"leetcode" 输出:"leotcede" class Solution { public String reverseVowels(String s) { /** 双指针: aoeiuAOEIU 遇到 左右都是元音 才可以交换 */
CaesarChang张旭
2021/06/21
6300
leetcode之反转字符串中的元音字母
这里先使用HashSet存放大小写的元音字母,之后使用头尾指针同时对字符串数组进行遍历,当i指向的字符与j指向的字符都是元音时,进行交换同时更新指针,不是元音字符时仅仅更新指针。
code4it
2020/11/17
8180
LeetCode80|反转字符串中的元音字母
自己目前还处于一直在输出内容的道路上,等需要的时候,自己会单独写一篇自己的总结分享给到需要的人,这样可能会对大家有所帮助,其实现在想说的是,当自己实习时,觉得会做项目,就是应用层层面的内容,觉得很了不起,那个时候觉得写代码是一种多么值得令人高兴的事情了,但是随着你自己对开发的认知,慢慢你会感觉自己以前很无知啊,这或许对于自己就是进步的一面,慢慢地随着自己内心的脚步去走吧,这样或许对于你自己有一点好处的,或许也不会,未来未知
码农王同学
2020/10/14
6930
LeetCode 345. 反转字符串中的元音字母
1. 题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 2. 解题 class Sol
Michael阿明
2020/07/13
6570
LeetCode 345. 反转字符串中的元音字母(JAVA)
题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 解题思路 public String reverseVowels(String s) { //双指针 char[] charList = s.toCharArray(); int left = 0; int
freesan44
2020/06/22
5920
【leetcode刷题】T73-反转字符串中的元音字母
【题目】 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 【思路】 从左右两边分别找到元音字母,进行交换即可。 注意:python不能直接修改字符串。 【代码】 python版本 class Solution(object):     def reverseVowels(self, s):         """       
木又AI帮
2019/07/17
5550
LeetCode面试系列 第9天:No.345 – 反转字符串中的元音字母
上一篇 LeetCode 面试题中,我们分析了一道相对轻松的字符串面试题 - 最后一个单词的长度。今天,我们接着来看另一道字符串的算法题吧。
极客中心
2021/01/21
5270
LeetCode面试系列 第9天:No.345 – 反转字符串中的元音字母
【算法千题案例】每日LeetCode打卡——68.反转字符串中的元音字母
元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。
呆呆敲代码的小Y
2021/11/08
4450
LeetCode刷题——按奇偶排序数组和反转字符串中的元音字母
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
用户10234052
2022/12/02
1.3K0
如何用 Java 找到字符串中的元音
通常需要考虑的的是大小写,空格,特殊字符等问题。在 Java 中,如果处理不好会容易空对象异常。
HoneyMoose
2023/09/12
1410
如何用 Java 找到字符串中的元音
LeetCode 1119. 删去字符串中的元音
给你一个字符串 S,请你删去其中的所有元音字母( ‘a’,‘e’,‘i’,‘o’,‘u’),并返回这个新字符串。
Michael阿明
2020/07/13
5590
反转字符串中的单词
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
狼啸风云
2023/10/07
2750
LeetCode 2062. 统计字符串中的元音子字符串
元音子字符串 是 仅 由元音('a'、'e'、'i'、'o' 和 'u')组成的一个子字符串,且必须包含 全部五种 元音。
Michael阿明
2022/01/07
1.1K0
LeetCode - 反转字符串中的单词③
LeetCode第557题,难度是简单,一个月三周以前刷的题目。突然意识到,我真的已经又是一个月没有写过LeetCode了,又变懒了,勤奋果然大都是暂时的。
晓痴
2019/07/24
1.5K0
LeetCode - 反转字符串中的单词③
LeetCode 2063. 所有子字符串中的元音(数学)
给你一个字符串 word ,返回 word 的所有子字符串中 元音的总数 ,元音是指 'a'、'e'、'i'、'o' 和 'u' 。
Michael阿明
2022/01/07
6690
力扣题目汇总(独特的电子邮件地址,二进制求和,反转字符串中的元音字母)
独特的电子邮件地址 1.题目描述 每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。 例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名。 除了小写字母,这些电子邮件还可能包含 '.' 或 '+'。 如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"alice.z@leetcode.com” 和 “alicez@leetcode.com” 会转发到同
小小咸鱼YwY
2019/07/24
9240
反转字符串中的单词 III -python
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
SingYi
2022/07/14
1.6K0
反转字符串中的单词 III -python
Java中字符串反转的实现方法
在Java中,要将字符串进行反转可以使用StringBuilder类。下面将介绍具体实现步骤,并提供一个示例代码。
高久峰
2023/07/12
4200
leetcode:557 反转字符串中的单词|||
题目就不用我讲解了把,垃圾题目。 思路:字符串先分割为什么分割? 因为后面要使用的函数都是数组的函数所以要。。。。。, 为什么使用的都是数组的函数? 因为字符串中没有办法可以反转的哈。 经过split过程了后的就是字符串的数组了(注意全部才是字符串数组,单独一个元素还是字符串哈),以空格为分割线,每一个都是字符串。 然后是map,为什么使用map? 兄弟们,这是用es6写的,当然用map了呀。 也可以使用foreach遍历哦. 然后是使用split函数为什么? 因为这是字符串啊,数组才有方法反转的。 然后是反转,然后是转换成字符串,为什么一定要转换成字符串? 因为s本来就是字符串的呀,难道要给数组给他吗?是吧,兄弟们。 注意一下这里:为什么不直接在map里面直接最后join(" ");呢? 因为里面反转的都是一个一个单词,不是直接反转整个字符串数组啊啊A1
贵哥的编程之路
2020/10/28
1.3K0

相似问题

仅返回字符串列表中的元音

16

字符串中仅允许字母、数字、元音、+、-和“

22

仅打印字符串中的元音。(Swift 5.1)

325

字符串反转:仅反转字符串中单词在c#中的位置

50

函数,它每次出现元音时都会反转字符串?

49
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文