【发布时间】:2021-09-08 00:49:08
【问题描述】:
我已经使用 python 参加了 CODEWARS dubstep 挑战。
我的代码在下面,它可以工作并且我通过了 kata 测试。但是,我花了很长时间,最终使用了蛮力方法(新手)。
(基本上替换和分割字符串直到它起作用)
请与 cmets 有关如何改进我的代码的任何想法?
任务摘要:
让我们假设一首歌由一些单词组成(不包含 WUB)。为了制作这首歌的 dubstep remix,Polycarpus 在歌曲的第一个词之前(数字可能为零)、最后一个词之后(数字可能为零)和词之间(任何一对相邻单词之间至少一个),然后男孩将包括“WUB”在内的所有单词粘在一起,并在俱乐部播放这首歌。
例如,带有“I AM X”字样的歌曲可以转换为“WUBWUBIWUBAMWUBWUBX”的 dubstep 混音,但不能转换为“WUBWUBIAMWUBX”。
song_decoder("WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB")# => WE ARE THE CHAMPIONS MY FRIEND
song_decoder("AWUBBWUBC"), "ABC","WUB 应替换为 1 个空格"song_decoder("AWUBWUBWUBBWUBWUBWUBC"), "ABC","multiples WUB 应仅替换为 1 个空格"song_decoder("WUBAWUBBWUBCWUB"), " ABC","应删除标题或尾随空格"
提前致谢,(我也是stackoverflow的新手)
我的代码:
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)
【问题讨论】:
-
正则表达式是一个选项:
def song_decoder(song): return re.sub("(WUB)+", ' ', song).strip() -
我使用那个功能失败了! test.assert_equals(song_decoder("AWUBBWUBC"), "ABC","WUB 应替换为 1 个空格") 文件 "/workspace/default/solution.py", 第 2 行, 在 song_decoder return re.sub("(WUB )+", ' ', song).strip() NameError: name 're' is not defined
-
您必须
import re才能使用正则表达式。 -
谢谢!是的 import re 有效 :)
标签: python string replace strip