412 - FizzBuzz(fizz-buzz)

Create by jsliang on 2019-07-25 15:48:32
Recently revised in 2019-07-25 16:08:25

一 目录

不折腾的前端,和咸鱼有什么区别

目录
一 目录
二 前言
三 解题
3.1 解法 - 暴力破解
3.2 解法 - 奇技淫巧

二 前言

返回目录

写一个程序,输出从 1 到 n 数字的字符串表示。

1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

示例:

n = 15,

返回:
[
  "1",
  "2",
  "Fizz",
  "4",
  "Buzz",
  "Fizz",
  "7",
  "8",
  "Fizz",
  "Buzz",
  "11",
  "Fizz",
  "13",
  "14",
  "FizzBuzz"
]

三 解题

返回目录

小伙伴可以先自己在本地尝试解题,再回来看看 jsliang 的解题思路。

3.1 解法 - 暴力破解

返回目录

  • 解题代码
var fizzBuzz = function(n) {
  let result = [];
  for (let i = 1; i <= n; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      result.push('FizzBuzz');
    } else if (i % 3 === 0) {
      result.push('Fizz');
    } else if (i % 5 === 0) {
      result.push('Buzz');
    } else {
      result.push(i + '');
    }
  }
  return result;
};
  • 执行测试

  • n15

  • return
[ '1',
  '2',
  'Fizz',
  '4',
  'Buzz',
  'Fizz',
  '7',
  '8',
  'Fizz',
  'Buzz',
  '11',
  'Fizz',
  '13',
  '14',
  'FizzBuzz' ]
  • LeetCode Submit
✔ Accepted
  ✔ 8/8 cases passed (92 ms)
  ✔ Your runtime beats 76.26 % of javascript submissions
  ✔ Your memory usage beats 57.05 % of javascript submissions (37.3 MB)
  • 知识点

  • push()push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。push() 详细介绍

  • 解题思路

虽然这是一道 LeetCode 题,但是我觉得这是一道大一作业题,可以说是简单地不能再简单了,完全就是玩了可以丢的那种~

自行解析,不做评论

3.2 解法 - 奇技淫巧

返回目录

  • 解题代码
var fizzBuzz = function(n) {
  return Array(n).fill(0).map((_, i) => (i + 1) % 3 === 0? (i + 1) % 5 === 0? 'FizzBuzz': 'Fizz': (i + 1) % 5 === 0? 'Buzz': i + 1 + '');
};
  • 执行测试

  • n15

  • return
[ '1',
  '2',
  'Fizz',
  '4',
  'Buzz',
  'Fizz',
  '7',
  '8',
  'Fizz',
  'Buzz',
  '11',
  'Fizz',
  '13',
  '14',
  'FizzBuzz' ]
  • LeetCode Submit
✔ Accepted
  ✔ 8/8 cases passed (92 ms)
  ✔ Your runtime beats 76.26 % of javascript submissions
  ✔ Your memory usage beats 30.13 % of javascript submissions (37.4 MB)
  • 知识点

  • map():遍历数组,item 返回遍历项,index 返回当前索引。map() 详细介绍

  • 解题思路

有点像是强行压缩成一行,引起极度不适~

业务代码中不要这么写喔~要不然你队友会拍死你的。

这种写法不好维护


不折腾的前端,和咸鱼有什么区别!

图

jsliang 会每天更新一道 LeetCode 题解,从而帮助小伙伴们夯实原生 JS 基础,了解与学习算法与数据结构。

扫描上方二维码,关注 jsliang 的公众号,让我们一起折腾!

知识共享许可协议
jsliang 的文档库梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于https://github.com/LiangJunrong/document-library上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处获得。

Copyright © jsliang.top 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-07-25 16:08:26

results matching ""

    No results matching ""