一、今日刷题
1. 第二部分:字符串 – 412. Fizz Buzz
给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
answer[i] == “FizzBuzz” 如果 i 同时是 3 和 5 的倍数。
answer[i] == “Fizz” 如果 i 是 3 的倍数。
answer[i] == “Buzz” 如果 i 是 5 的倍数。
answer[i] == i (以字符串形式)如果上述条件全不满足。
示例 1:
输入:n = 3
输出:[“1”,“2”,“Fizz”]
示例 2:
输入:n = 5
输出:[“1”,“2”,“Fizz”,“4”,“Buzz”]
答案代码:
package String;
import java.util.ArrayList;
import java.util.List;
/**
* @author: LYZ
* @date: 2022/1/31 9:44
* @description: 412.给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
* answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。
* answer[i] == "Fizz" 如果 i 是 3 的倍数。
* answer[i] == "Buzz" 如果 i 是 5 的倍数。
* answer[i] == i (以字符串形式)如果上述条件全不满足。
*/
public class FizzBuzz {
public static void main(String[] args) {
FizzBuzz fizzBuzz = new FizzBuzz();
List<String> list = new ArrayList<>();
list = fizzBuzz.fizzBuzz(3);
System.out.println(list);
}
public List<String> fizzBuzz(int n) {
List<String> list = new ArrayList<>();
for (int i = 1; i <= n; ++i) {
if (i % 3 == 0 && i % 5 == 0) {
list.add("FizzBuzz");
} else if (i % 3 == 0) {
list.add("Fizz");
} else if (i % 5 == 0) {
list.add("Buzz");
} else {
list.add(Integer.toString(i)); //String.valueOf(i)
}
}
return list;
}
}
这道题唯一的难点就是在最后存字符型的 i 时,一开始我直接存的 “i” 明显错了,但一般的toString()方法又不适用于整型。
将int类型的值转化为string类型:
String s =Integer.toString(i);
或
String s =String.valueOf(i);