The FizzBuzz is a famous beginner problem that is often used to start learning a new programming language. Compared to Simple Hello World, the FizzBuzz requires the usage of Loop and If check. The usual text-book solution to FizzBuzz is (in Python) as follows:
class Solution:
def solve(self, n):
ans = []
for i in range(1, n + 1):
if i % 3 == i % 5 == 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
This isn’t Pythonic at all, with Python, you can do this in one-liner using the list comprehension:
class Solution:
def solve(self, n):
return ["Fizz" * (i % 3 == 0) +
"Buzz" * (i % 5 == 0) or str(i) for i in range(1, n + 1)]
Here you can use the multiply operator to repeat a string pattern n times in Python. This well serves the purpose of concatenating the Fizz and Buzz when it is mod by both 3 and 5 (which is 15).
The OR operator defines the other cases when the number is not a multiple of 3, 5 or 15.
FizzBuzz:
- Sexy One-liner of Python to Solve the FizzBuzz
- How to For-Loop and do Math/Arithmetic Operations in Windows/NT Batch – the FizzBuzz Programming Example
- The FizzBuzz Example in Magik Programming Language
- GoLang: FizzBuzz
–EOF (The Ultimate Computing & Technology Blog) —
354 wordsLast Post: Algorithms to Compute the Fibonacci String Sequence
Next Post: C++ Implementation of Segment Tree