leetcode 412.Fizz Buzz Java

做题博客链接

https://blog.csdn.net/qq_43349112/article/details/108542248

题目链接

https://leetcode-cn.com/problems/fizz-buzz/

描述

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

1. 如果 n 是3的倍数,输出“Fizz”;

2. 如果 n 是5的倍数,输出“Buzz”;

3.如果 n 同时是35的倍数,输出 “FizzBuzz”。

示例

示例:

n = 15,

返回:

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

初始代码模板

class Solution {
    public List<String> fizzBuzz(int n) {

    }
}

代码

推荐题解,虽然题目简单,但是题解还是有不少可以学习的东西:
https://leetcode-cn.com/problems/fizz-buzz/solution/fizz-buzz-by-leetcode/

模拟

class Solution {
    public List<String> fizzBuzz(int n) {
        List<String> list = new ArrayList<>();

        for (int i = 1; i <= n; i++) {
            if (i % 15 == 0) {
                list.add("FizzBuzz");
            } else if (i % 3 == 0) {
                list.add("Fizz");
            } else if (i % 5 == 0) {
                list.add("Buzz");
            } else {
                list.add(String.valueOf(i));
            }
        }

        return list;
    }
}

散列表

仅以这个题目而言,这样做其实效率更低,但是如果判定逻辑复杂之后,这个方法更容易维护

class Solution {
    public List<String> fizzBuzz(int n) {
        Map<Integer, String> map = new HashMap<>(){
            {
                put(3, "Fizz");
                put(5, "Buzz");
            }
        };

        List<String> res = new LinkedList<>();

        for (int i = 1; i <= n; i++) {
            String str = "";
            for (Map.Entry<Integer, String> entry : map.entrySet()) {
                if (i % entry.getKey() == 0) {
                    str += entry.getValue();
                }
            }

            if ("".equals(str)) {
                str += i;
            }
            res.add(str);
        }

        return res;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值