Welcome to Subscribe On Youtube
412. Fizz Buzz
Description
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
Solutions
For each integer ranging from 1 to n, we represent the number using a string. The process for generating this string representation involves several steps based on the divisibility of the number:
- Divisibility by 3: If the number is divisible by 3, we append “Fizz” to its string representation.
- Divisibility by 5: Similarly, if the number is divisible by 5, we append “Buzz” to the string representation.
- Fallback to Number: After evaluating divisibility by 3 and 5, if the string representation remains unchanged (indicating the number is neither divisible by 3 nor 5), we then use the number itself as its string representation.
It’s important to note that a number can be divisible by both 3 and 5. In such cases, both conditions are evaluated, and the string representation will include both “Fizz” and “Buzz”, respectively.
Once the string representation for each number is determined, we add it to a result list. Finally, this list is returned as the output of the operation.
This approach ensures that each number is appropriately labeled with “Fizz”, “Buzz”, or both, depending on its divisibility by 3 and 5, or represented by the original number when it meets neither condition.
-
class Solution { public List<String> fizzBuzz(int n) { List<String> ans = new ArrayList<>(); for (int i = 1; i <= n; ++i) { String s = ""; if (i % 3 == 0) { s += "Fizz"; } if (i % 5 == 0) { s += "Buzz"; } if (s.length() == 0) { s += i; } ans.add(s); } return ans; } }
-
class Solution { public: vector<string> fizzBuzz(int n) { vector<string> ans; for (int i = 1; i <= n; ++i) { string s = ""; if (i % 3 == 0) s += "Fizz"; if (i % 5 == 0) s += "Buzz"; if (s.size() == 0) s = to_string(i); ans.push_back(s); } return ans; } };
-
class Solution: def fizzBuzz(self, n: int) -> List[str]: ans = [] for i in range(1, n + 1): if i % 15 == 0: ans.append('FizzBuzz') elif i % 3 == 0: ans.append('Fizz') elif i % 5 == 0: ans.append('Buzz') else: ans.append(str(i)) return ans
-
func fizzBuzz(n int) []string { var ans []string for i := 1; i <= n; i++ { s := &strings.Builder{} if i%3 == 0 { s.WriteString("Fizz") } if i%5 == 0 { s.WriteString("Buzz") } if s.Len() == 0 { s.WriteString(strconv.Itoa(i)) } ans = append(ans, s.String()) } return ans }
-
const fizzBuzz = function (n) { let arr = []; for (let i = 1; i <= n; i++) { if (i % 15 === 0) arr.push('FizzBuzz'); else if (i % 3 === 0) arr.push('Fizz'); else if (i % 5 === 0) arr.push('Buzz'); else arr.push(`${i}`); } return arr; };
-
class Solution { /** * @param Integer $n * @return String[] */ function fizzBuzz($n) { $rs = []; for ($i = 1; $i <= $n; $i++) { if ($i % 3 != 0 && $i % 5 != 0) { array_push($rs, strval($i)); } elseif ($i % 3 == 0 && $i % 5 != 0) { array_push($rs, 'Fizz'); } elseif ($i % 3 != 0 && $i % 5 == 0) { array_push($rs, 'Buzz'); } else { array_push($rs, 'FizzBuzz'); } } return $rs; } }