码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode——412. Fizz Buzz

时间:2021-04-05 12:31:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:实现   特殊   方便   etc   else   link   list接口   表示   元素   

题目描述

题干:
写一个程序,输出从 1 到 n 数字的字符串表示。
  1. 如果 n 是3的倍数,输出“Fizz”;
  2. 如果 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"
]

题解思路

把数字变成字符串然后把除数是3或者5的特殊数字用字符串代替存储到一个List集合

无非就是这三种情况,而且还按照自然数排列,最好的方法无非是for循环加几个if else判断

这里就是需要把int型的数字存放到String的集合中,这里一共有三种办法
  1. i + ""
  2. String.valueOf(i)
  3. Integer.toString(i)

还有List接口的三种常见的实现类,这里因为要多次插入新元素,所以我采用了方便插入的LinkedList实现类

正确代码

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

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

总结

这里总结以下List接口,List是继承Collection接口,常用的实现类有ArrayList、LinkedList和Vector

区别:
  ArrayList,底层是动态数组,可以动态的增加数组大小,查找方便,增删改不方便,线程不安全
  LinkedList,底层是双向链表,增删改方便,查找不方便,线程也是不安全
  Vector,底层也是动态数组,不过扩容方式和ArrayList不同,线程安全,他还有一个子类Stack,效率较低

如果文章存在问题或者存在更好的题解,欢迎在评论区斧正和评论,各自努力,你我最高处见

LeetCode——412. Fizz Buzz

标签:实现   特殊   方便   etc   else   link   list接口   表示   元素   

原文地址:https://www.cnblogs.com/bc-song/p/14613376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!