Dubstep
链接
题目
Polycarpus这个人在伯兰最棒的夜总会里当DJ,他经常在他的表演中使用回响贝斯(Dubstep)。最近他决定把几首老歌和回响贝斯remix一下。
我们假设一首歌是由一些词组成的。为了把dubstep混合到这首歌里,Polycarpus在歌的第一个词之前(可能歌里一个词也没有)、最后一个词之后以及词之间(相邻两个词之间至少有一个)插入了特定的词“WUB”。然后把所有的词拼在一起,作为一个字符串,在夜总会里播放。
比如说,一首歌的词是“I AM X”。它能够转换成“WUBWUBIWUBAMWUBWUBX”,不能转换成“WUBWUBIAMWUBX”。
最近,Jonny听了Polycarpus的一首新的dubstep的曲子,但是由于他不太喜欢现代音乐,他决定找出Polycarpus混合的那首初始歌曲。帮Jonny找出原来的歌。
输入 包含一个单独的非空字符串,由英文大写字母组成,字符串长度不超过200个字符
输出 返回混合前的原始歌曲。用一个空格分割。
songDecoder("WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB")
// => WE ARE THE CHAMPIONS MY FRIEND
我的思路及实现
function songDecoder(song){
var str = song.replace(/WUB/g, " ");
str = str.replace(/^\s+|\s+$/g, "");
strs = str.split(" ");
var old = "";
strs.forEach(function(value, index, arr){
if (value != ''){
if (index != arr.length - 1){
old += value + " ";
} else {
old += value;
}
}
});
return old;
}
Best Practice
function songDecoder(song){
return song.replace(/(WUB)+/g," ").trim()
}
function songDecoder(song){
return song.split('WUB').filter(Boolean).join(' ');
}
var songDecoder = (song) => song.split('WUB').filter(x => x !== '').join(' ')