Problem
Given an integer n, return a string array answer (1-indexed) where:
answer[i] == "FizzBuzz"ifiis divisible by3and5.answer[i] == "Fizz"ifiis divisible by3.answer[i] == "Buzz"ifiis 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;
}
};