Problem
Given an integer n
, return a string array answer
(1-indexed) where:
answer[i] == "FizzBuzz"
ifi
is divisible by3
and5
.answer[i] == "Fizz"
ifi
is divisible by3
.answer[i] == "Buzz"
ifi
is divisible by5
.answer[i] == i
(as a string) if none of the above conditions are true.
Example 1: Input: n = 3 Output: [“1”,“2”,“Fizz”]
Example 2: Input: n = 5 Output: [“1”,“2”,“Fizz”,“4”,“Buzz”]
Example 3: Input: n = 15 Output: [“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11”,“Fizz”,“13”,“14”,“FizzBuzz”]
Constraints:
1 <= n <= 104
Solution
Left to Right String Concatenation - O(n) time - O(n) space
#include<string>
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> result;
for(int i = 1; i <= n; i++) {
string element = "";
if (i%3 == 0) {
element = "Fizz";
}
if (i%5 == 0) {
element += "Buzz";
}
if (element == "") {
element = to_string(i);
}
result.push_back(element);
}
return result;
}
};