[7kyu]Counting in the Amazon

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

  • 场景
    • 阿拉拉是亚马逊中一个孤立的部落,成对计数。
  • 例如1到8如下计数:
    1 = anane
    2 = adak
    3 = adak anane
    4 = adak adak
    5 = adak adak anane
    6 = adak adak adak
    7 = adak adak adak anane
    8 = adak adak adak adak
  • 任务
  • 传入一个的数值,返回以该部落计数方式的数值。
  • 例如:
    countArara(3) 'adak anane
    countArara(8) 'adak adak adak adak'

  • 解答
  • 其一
const countArara = n => {
      let str = new Array(Math.trunc(n/2)).fill('adak').join(' ');
      return (n/2 + '').indexOf('.') > 0 ? (!str ? 'anane' : str + ' anane') : str
}
  • 其二
function countArara(n) {
      switch (n) {
        case 0:  return '';
        case 2:  return 'adak';
        default: return 'adak ' + countArara(n-2);
      }
}
  • 其三
function countArara(n) {
      var count = [];
      for (var i = 2; i <= n; i+=2) {
        count.push("adak");
      }
      if (n % 2 != 0)  count.push("anane");    
      return count.join(" ");
}
  • 其四
var one = "anane";
var two = "adak";
function countArara(n) { 
      if(n==1) return one; 
      if(n==2) return two;
      else return two + " " + countArara(n-2); 
}
  • 其五
function countArara(n) {
      return new Array(Math.ceil(n/2)).join('adak ')  + (n%2 ?  'anane' : 'adak');
}
  • 其六
const countArara = n => (Array(parseInt(n/2) + 1).join("adak ") + (n % 2 ? "anane" : "")).trim();
  • 其七
const countArara = (n) => n > 2 ? "adak " + countArara(n - 2) : n == 2 ? "adak" : "anane"
  • 其八
function countArara(n) {
      let out = Array(...Array(Math.floor(n / 2))).map(_ => 'adak');
      if(n & 1) out.push('anane');
      return out.join(' ');
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 2,001评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,110评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,854评论 2 17
  • 知识储备1.1 AFNetworking 是一个轻量级的iOS 网络通信类库1.2 AFNetworing 基于 ...
    稻草田阅读 807评论 0 3