美文网首页
[7kyu]Band name generator

[7kyu]Band name generator

作者: 君肄塵 | 来源:发表于2017-07-25 18:05 被阅读21次

    该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~

    • 任务
    • 我的朋友想要起一个乐队名。她喜欢使用以下公式命名乐队: '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)
    }
    

    相关文章

      网友评论

          本文标题:[7kyu]Band name generator

          本文链接:https://www.haomeiwen.com/subject/gyhgkxtx.html