LeetCode刷题(FizzBuzz)

来源:互联网 发布:深圳赛维网络董事长 编辑:程序博客网 时间:2024/06/05 03:16
问题描述:

Write a program that outputs the string representation of numbers from 1 to n.

But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.

输出一个字符串数组,数组长度为n;

第i个元素若满足i是三的倍数,则输出Fizz;若满足是5的倍数,则输出Buzz;若是3和5的公倍数则输出FizzBuzz。

n = 15,Return:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

Leetcode 给出以下程序开始部分:

public class Solution {    public List<String> fizzBuzz(int n) {            }}
显然,我不知道List的用法,只能去查Java API咯!(http://docs.oracle.com/javase/8/docs/api/)

add

public void add(String item)
Adds the specified item to the end of scrolling list.
显然用add功能即可。

public class Solution {    public List<String> fizzBuzz(int n) {        List<String> list = new List<String>();        for(int i=1;i<=n;i++)        {            if(i%15==0)                list.add("FizzBuzz");            else if (i%3==0 && i%5!=0 )                list.add("Fizz");            else if (i%5==0 && i%3!=0 )                list.add("Buzz");            else                list.add(String.valueOf(i));        }        return list;    }}
报错:Line 3: error: List is abstract; cannot be instantiated
度娘:采用这种方式创建对象List<String> list=new ArrayList<String>();
修改后:
public 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 && i%5!=0 )                list.add("Fizz");            else if (i%5==0 && i%3!=0 )                list.add("Buzz");            else                list.add(String.valueOf(i));        }        return list;    }}
运行结果: n=14
["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14"]
结果正确!

用List<String> list = new ArrayList<String>();这用到了java中的 “转型”。 待学习后更新笔记!



0 0
原创粉丝点击