[7kyu]Alan Partridge I - Partridge Watch

該算法題來自于 codewars【語言: javascript】,翻譯如有誤差,敬請諒解~

  • 任務
  • 給出一系列術語組成的數組,如果其中任何一個術語與 Alan Partridge 有關,就返回 Mine's a Pint!
  • Mine's a Pint之后!的數量,由所提供的數組(x)與的Alan Partridge相關的術語個數確定。相關術語為:
    Partridge
    PearTree
    Chat
    Dan
    Toblerone
    Lynn
    AlphaPapa
    Nomad
  • 如果沒有任何一個術語與Alan Partridge相關,請返回Lynn, I've pierced my foot on a spike!!
  • 例如:
    part(['Grouse', 'Partridge', 'Pheasant']) // 'Mine's a Pint!'
    part(['Pheasant', 'Goose', 'Starling', 'Robin']) // 'Lynn, I've pierced my foot on a spike!!'
    part(['Grouse', 'Partridge', 'Pheasant', 'Goose', 'Starling', 'Robin', 'Thrush', 'Emu', 'PearTree', 'Chat', 'Dan', 'Square', 'Toblerone', 'Lynn', 'AlphaPapa', 'BMW', 'Graham', 'Tool', 'Nomad', 'Finger', 'Hamster']) // 'Mine's a Pint!!!!!!!!'

  • 解答
  • 其一
function part(x){
      let len = x.join('').replace(/Partridge|PearTree|Chat|Dan|Toblerone|Lynn|AlphaPapa|Nomad/g,'#').split('#').length - 1;
      let str = "Lynn, I've pierced my foot on a spike!!";
      if (len) str = "Mine\'s a Pint" + '!'.repeat(len);
      return str;
}
  • 其二
function part(x){
      var count = x.filter(e => ['Partridge','PearTree','Chat','Dan','Toblerone','Lynn','AlphaPapa','Nomad'].indexOf(e) != -1).length;
      return count > 0 ? 'Mine\'s a Pint' + '!'.repeat(count) : 'Lynn, I\'ve pierced my foot on a spike!!';
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容