103 - fizz buzz
题目
写一个程序,输出从 1 到 n 数字的字符串表示。
如果 n 是3的倍数,输出“Fizz”;
如果 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.
也可以这么解:
/**
* @param {number} n
* @return {string[]}
*/
var fizzBuzz = function (n) {
let res = new Array(n);
for (let i = 1; i <= n; i++) {
let temp = ""
if (i % 3 === 0) {
temp += "Fizz"
}
if (i % 5 === 0) {
temp += "Buzz"
}
if (i % 3 !== 0 && i % 5 !== 0) {
temp += i
}
res[i - 1] = temp
}
return res
};
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比重新指向新的字符串要节约成本吧
func fizzBuzz(n int) []string {
res := make([]string, n)
for 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] = strconv.Itoa(i)
}
}
return res
}
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%😂
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
res = [0] * n
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
res[i - 1] = "FizzBuzz"
elif i % 3 == 0:
res[i - 1] = "Fizz"
elif i % 5 == 0:
res[i - 1] = "Buzz"
else:
res[i - 1] = str(i)
return res
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?