题目描述
写一个程序,输出从 1 到 n 数字的字符串表示。
如果 n 是3的倍数,输出“Fizz”;
如果 n 是5的倍数,输出“Buzz”;
如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| n = 15,
返回: [ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz" ]
|
思路
对于字符串
的考察,对于这道题直接用最简单的思路处理了,如果碰到复杂的问题,需要用Map存储n与Fizz或Buzz的映射,之后进行字符串拼接。
答案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public List<String> fizzBuzz(int n) { List<String> res = new ArrayList<>(); for(int i=1;i<=n;i++){ String str = ""; if((i%3==0)&&(i%5==0)){ str= "FizzBuzz"; }else if(i%3==0){ str= "Fizz"; }else if(i%5==0){ str= "Buzz"; }else{ str = String.valueOf(i); } res.add(str); } return res; } }
|
结果