103 - fizz buzz

题目

写一个程序,输出从 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" ]

解答

这题。。感觉不难。。

var fizzBuzz = function (n) {
  let res = new Array(n);
  for (let i = 1; i <= n; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      res[i - 1] = "FizzBuzz"
    } else if (i % 3 === 0) {
      res[i - 1] = "Fizz"
    } else if (i % 5 === 0) {
      res[i - 1] = "Buzz"
    } else {
      res[i - 1] = String(i)
    }
  }
  return res
};

Runtime: 64 ms, faster than 56.95% of JavaScript online submissions for Fizz Buzz.

Memory Usage: 36.9 MB, less than 95.00% of JavaScript online submissions for Fizz Buzz.

也可以这么解:

Runtime: 80 ms, faster than 8.79% of JavaScript online submissions for Fizz Buzz.

Memory Usage: 37.4 MB, less than 65.00% of JavaScript online submissions for Fizz Buzz.

嗯。。第一种更好,节省脑力,速度也更快。

速度快的原因可能是push比重新指向新的字符串要节约成本吧

Runtime: 116 ms, faster than 47.02% of Go online submissions for Fizz Buzz.

Memory Usage: 136.6 MB, less than 100.00% of Go online submissions for Fizz Buzz.

。。。为啥go会用那么多内存。。

关键用了那么多,居然还是100%😂

Runtime: 52 ms, faster than 60.30% of Python3 online submissions for Fizz Buzz.

Memory Usage: 15 MB, less than 6.38% of Python3 online submissions for Fizz Buzz.

感觉python的for-range好适合这个题目啊。。

Last updated

Was this helpful?