Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
一、题目描述
- 给你一个整数
n,找出从1到n各个整数的 Fizz Buzz 表示,并用字符串数组answer(下标从 1 开始)返回结果,其中:answer[i] == "FizzBuzz"如果i同时是3和5的倍数。answer[i] == "Fizz"如果i是3的倍数。answer[i] == "Buzz"如果i是5的倍数。answer[i] == i(以字符串形式)如果上述条件全不满足。
- 示例 1:
- 输入: n = 3
- 输出: ["1","2","Fizz"]
- 示例 2:
- 输入: n = 5
- 输出: ["1","2","Fizz","4","Buzz"]
- 示例 3:
- 输入: n = 15
- 输出:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
- 提示:
1 <= n <= Math.pow(10, 4)
二、思路分析:
- 题目给定的整数
n就是返回数组的长度,也是遍历时的参数范围 - 定义一个空数组变量,将给定的整数
n作为遍历参数- 当参数既是
3的倍数,又是5的倍数时,往空数组里添加“FizzBuzz” - 当参数只是
3的倍数时,往空数组里添加“Fizz” - 当参数只是
5的倍数时,往空数组里添加“Buzz” - 当参数既不是
3的倍数,又不是5的倍数时,往空数组里添加当前参数
- 当参数既是
三、AC 代码:
function fizzBuzz(n: number): string[] {
let resultArr: Array<string> = [];
for(let i = 1; i <= n ; i++){
if(i % 3 === 0 && i % 5 === 0){
resultArr.push('FizzBuzz')
} else if(i % 3 === 0){
resultArr.push('Fizz')
}else if(i % 5 === 0){
resultArr.push('Buzz')
} else {
resultArr.push(String(i))
}
}
return resultArr;
};
四、总结:
- 注意下遍历参数初始值从
1开始即可 - 更多解题方式,移步题解区