首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除字符串中某个单词的实例和可能的多个实例并返回一个字符串(CODEWARS dubstep)

如何删除字符串中某个单词的实例和可能的多个实例并返回一个字符串(CODEWARS dubstep)
EN

Stack Overflow用户
提问于 2021-06-24 13:58:12
回答 1查看 189关注 0票数 0

我曾经尝试过使用python进行CODEWARS dubstep挑战。

我的代码如下,它工作,我通过了卡塔测试。然而,这花了我很长的时间,最后我用了一种蛮力的方法(新手)。

(基本上是替换和条带字符串,直到它工作)

对于如何改进我的代码有什么想法吗?

任务摘要:

,让我们假设一首歌包含一定数量的单词(不包含WUB)。为了使这首歌重新组合,Polycarpus在歌曲的第一个单词(可能为零)、最后一个单词(可能为零)和单词之间(至少在相邻的两个单词之间)之前插入了一定数量的单词"WUB",然后男孩将包括"WUB“在内的所有单词粘合在一起,并在俱乐部播放歌曲。

例如,一首歌词为"I AM X“的歌曲可以转换为"WUBWUBIWUBAMWUBWUBX”,不能转换为"WUBWUBIAMWUBX“。

song_decoder("WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB")

# => WE ARE THE CHAMPIONS MY FRIEND

song_decoder("AWUBBWUBC"),"A B C","WUB应改为1空格“

song_decoder("AWUBWUBWUBBWUBWUBWUBC")、"A“、”倍数WUB只需一个空格“

song_decoder("WUBAWUBBWUBCWUB")、"A、B、C“、”标题或尾随空格应予删除“

提前谢谢,(我也是新来的堆叠溢出)

我的代码:

代码语言:javascript
复制
def song_decoder(song):
new_song = song.replace("WUB", " ")
new_song2 = new_song.strip()
new_song3 = new_song2.replace("   ", "  ")
new_song4 = new_song3.replace("  ", " ")
return(new_song4)
EN

回答 1

Stack Overflow用户

发布于 2021-06-24 14:38:37

我不知道它是否能改进它,但我会使用splitjoin

代码语言:javascript
复制
text = 'WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB'
text = text.replace("WUB", " ")
print(text)
words = text.split()
print(words)
text = " ".join(words)
print(text)

结果

代码语言:javascript
复制
 WE ARE  THE CHAMPIONS MY FRIEND 
['WE', 'ARE', 'THE', 'CHAMPIONS', 'MY', 'FRIEND']
WE ARE THE CHAMPIONS MY FRIEND

编辑:

有点不同的版本。我拆分了usinsg WUB,但是它在两个WUB之间创建了空元素,并且需要删除它们。

代码语言:javascript
复制
text = 'WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB'

words = text.split("WUB")
print(words)

words = [x for x in words if x]    # remove empty elements
#words = list(filter(None, words))  # remove empty elements
print(words)

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

https://stackoverflow.com/questions/68117204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档