题目描述
写一个程序,输出从 1 到 n 数字的字符串表示。
-
如果 n 是3的倍数,输出“Fizz”;
-
如果 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”]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fizz-buzz
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
对3和5取余即可。
如果题目上不止两个数,如3–>Fizz、5–>Buzz、7–>Jazz…,可以使用HashMap存储{3: Fizz、5: Buzz、7: Jazz…}并进行遍历。
代码详解
class Solution {
public List<String> fizzBuzz(int n) {
List<String> list = new LinkedList<>();
for(int i = 1; i <= n; ++i) { // 注意是1-n
String s = "";
// 注意由于是字符串拼接,因此判断3和5的顺序不能颠倒
if(i % 3 == 0) {
s += "Fizz";
}
if(i % 5 == 0) {
s += "Buzz";
}
if(s.length() == 0) { // 若既不能被3整除又不能被5整除,s就是字符串化的数字i
s = String.valueOf(i);
}
list.add(s); // 添加至list中
}
return list;
}
}
注意点
- 如果用字符串拼接的方式来构造字符串,整除的判断顺序便只有一种,不能乱来。