leetcode_3FizzBuzz的一些思考
阅读原文时间:2023年07月11日阅读:2

题目很简单,给定一个正整数n,如果n能整除3的话往list里加入Fizz,如果n能整除5的话往list里面加入Buzz,如果即能整除3又能整除5的话,加入FizzBuzz,代码也很简单

public List<String> fizzBuzz(int n){
        String[] strs = new String[n];
        for (Integer i = 1; i <=n ; i++) {
            if (i%3==0&&i%5==0){
                strs[i-1]="FizzBuzz";
            }else if (i%3==0){
                strs[i-1]="Fizz";
            }else if (i%5==0){
                strs[i-1]="Buzz";
            }else{
                strs[i-1]=i.toString();
            }
        }
        return Arrays.asList(strs);
    }

思考:

  • Integer.toString()int+""这两者的结果虽然相同,但是由于+语法糖的存在,字符串相加实际上是利用的StringBuilder实现的,所以效率上就低了很多,前者的写法更加合适
  • 为了更加通用,可以考虑使用HashMap存储对应的规则,遍历规则然后用一个字符串累加这样来得到结果,避免使用if else这样的结构,尤其是在规则比较多了之后

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章