题目链接: https://leetcode.com/problems/fizz-buzz/
1. 题目介绍(Fizz Buzz)Given an integer n, return a string array answer (1-indexed) where:
【Translate】:给定一个整数 n,返回一个字符串数组的答案(下标从1开始),其中:
answer[i] == “FizzBuzz” if i is divisible by 3 and 5.(如果i能被3和5整除,则answer[i] == “FizzBuzz”)answer[i] == “Fizz” if i is divisible by 3.(如果i能被3整除,则answer[i] == “Fizz”)answer[i] == “Buzz” if i is divisible by 5.(如果i能被5整除,则answer[i] == “Buzz”)answer[i] == i (as a string) if none of the above conditions are true.(如果以上都没有,则answer[i] == i )
测试用例:
约束:
根据题目描述,我像大家应该都能很轻松的想到这不就是一个if...else if...else判断嘛,我们先判断一下i是否能被3和5整除,然后依次是否能被3整除,是否能被5整除,都不满足,else让其等于i,结束!(需要注意的一点就是i是从1开始的)
class Solution {
public List fizzBuzz(int n) {
List answer = new ArrayList<>();
for(int i = 1; i <= n; i++){
if(i%3 == 0 && i%5 == 0){
answer.add("FizzBuzz");
}else if (i%3 == 0){
answer.add("Fizz");
}else if (i%5 == 0){
answer.add("Buzz");
}else{
answer.add(String.valueOf(i));
}
}
return answer;
}
}
2.2 if…if…if
该方法是讨论区Most Vote比较靠前的题解,它并没有使用if…else if的形式,而是将其都设成了if形式,优点是不需要再单独判断是否可以被3和5同时整除,缺点就是每次所有的都得判断。但最后,该方法的最好结果和上一解法的最好结果基本持平,当然在这种简单题中基本上也没什么可深挖的空间,没必要花费太多的时间来思考改进和优化。
public List3. 可参考fizzBuzz(int n) { List answer = new ArrayList<>(); for (int i= 1; i <= n; i++) { String current = ""; if (i % 3 == 0) { current = "Fizz"; } if (i % 5 == 0) { current += "Buzz"; } if (current.length() == 0) { current = String.valueOf(i); } answer.add(current); } return answer; }
[1] Java集合-List



