现在有一个整数,要求返回一个数组,数组内容如下:
answeri == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。
answeri == "Fizz" 如果 i 是 3 的倍数。
answeri == "Buzz" 如果 i 是 5 的倍数。
answeri == i
举例:
cpp
输入:
n = 3
输出:
["1","2","Fizz"]
解法一:
cpp
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> answer(n);
for(int i=1;i<=n;i++)
{
if(i%3==0&&i%5==0)
{
answer[i-1]="FizzBuzz";
}
else if(i%3==0)
{
answer[i-1]="Fizz";
}
else if(i%5==0)
{
answer[i-1]="Buzz";
}
else
{
answer[i-1]=to_string(i);
}
}
return answer;
}
};
解法二:不用担心下标
cpp
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> answer; // 依然为空,但我不直接取下标
for (int i = 1; i <= n; i++) {
if (i % 3 == 0 && i % 5 == 0) {
answer.push_back("FizzBuzz"); // 从尾部追加,绝对安全
} else if (i % 3 == 0) {
answer.push_back("Fizz");
} else if (i % 5 == 0) {
answer.push_back("Buzz");
} else {
answer.push_back(to_string(i));
}
}
return answer;
}
};
注意点:
空数组不能用 下标 赋值 ------ 必须 vector<string> answer(n); 或者用 push_back。
FizzBuzz 必须从 1 数到 n,不是从 0。
字符串数组赋值右边必须是字符串,整数要用 to_string() 转换。