我曾经尝试过使用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“、”标题或尾随空格应予删除“
提前谢谢,(我也是新来的堆叠溢出)
我的代码:
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)发布于 2021-06-24 14:38:37
我不知道它是否能改进它,但我会使用split和join
text = 'WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB'
text = text.replace("WUB", " ")
print(text)
words = text.split()
print(words)
text = " ".join(words)
print(text)结果
WE ARE THE CHAMPIONS MY FRIEND
['WE', 'ARE', 'THE', 'CHAMPIONS', 'MY', 'FRIEND']
WE ARE THE CHAMPIONS MY FRIEND编辑:
有点不同的版本。我拆分了usinsg WUB,但是它在两个WUB之间创建了空元素,并且需要删除它们。
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)https://stackoverflow.com/questions/68117204
复制相似问题