[7kyu]Band|[7kyu]Band name generator
该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~
文章图片
【[7kyu]Band|[7kyu]Band name generator】
- 任务
- 我的朋友想要起一个乐队名。她喜欢使用以下公式命名乐队:
'The' +
首字母大写的单词dolphin -> The Dolphin
- 然而,当一个单词的第一个和最后一个字母相同时,她喜欢重复该单词两次,并将它们与第一个和最后一个字母连接在一起,然后合并成一个如下所示的单词(前面没有
“The”
)
alaska -> Alaskalaska europe -> Europeurope
- 请编写一个函数,接收一个参数(字符串),返回一个符合上述要求的乐队名称。
- 解答
- 其一
const bandNameGenerator = str => {
const subStr = str.slice(1,str.length);
return str.charAt(str.length - 1) == str.charAt(0) ? str.charAt(0).toUpperCase() + subStr.repeat(2) : 'The ' + str.charAt(0).toUpperCase() + subStr;
}
- 其二
const bandNameGenerator = s => s[0] != s[s.length-1] ? "The " + s[0].toUpperCase() + s.slice(1) : s[0].toUpperCase() + s.slice(1) + s.slice(1);
- 其三
const startEndSame = (str = '') => str[0] === str[str.length - 1];
const repeat = (str) => `${ str.slice(0, -1) }${ str }`;
const capitalize = (str) => `${ str[0].toUpperCase() }${ str.slice(1) }`;
const bandNameGenerator = (str) => startEndSame(str) ? capitalize(repeat(str)) : `The ${ capitalize(str) }`;
- 其四
function bandNameGenerator(s) {
return /^(.).*\1$/.test(s)?s[0].toUpperCase()+s.slice(1)+s.slice(1):"The "+s[0].toUpperCase()+s.slice(1)
}
推荐阅读
- 玩具测评丨BANDAI万代神奇宝贝小镇盒玩
- Swift7|Swift7 - 循环、函数
- R语言从入门到机器学习|R语言rename重命名dataframe的列名实战:rename重命名dataframe的列名(写错的列名不会被重命名)
- File.renameTo()就是个坑!
- [i]Bands|[i]Bands 汉译布林
- Rocket|Rocket NameSrv 大致分析
- GeekBand-C++面向对象高级编程-Lesson2
- RocketMQ学习八-NameServer分析
- Mybatis入门之CRUD
- 越来越简单的数据类定义(named|越来越简单的数据类定义:named tuple)