刷题打卡

160 阅读1分钟

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开始即可
  • 更多解题方式,移步题解区

image.png