สมมติว่าเรามีตัวเลข n เราต้องแสดงการแทนค่าสตริงของตัวเลขทั้งหมดจาก 1 ถึง n แต่มีข้อจำกัดบางอย่าง:
- ถ้าตัวเลขหารด้วย 3 ลงตัว ให้เขียน Fizz แทนตัวเลข
- ถ้าตัวเลขหารด้วย 5 ลงตัว ให้เขียน Buzz แทนตัวเลข
- ถ้าตัวเลขหารด้วย 3 และ 5 ลงตัวทั้งคู่ ให้เขียน FizzBuzz แทนตัวเลข
วิธีการแก้ปัญหา
- สำหรับทุกตัวเลขจาก 1 ถึง n:
- ถ้าตัวเลขหารด้วย 3 และ 5 ลงตัวทั้งคู่ ให้พิมพ์ "FizzBuzz"
- มิฉะนั้นถ้าตัวเลขหารด้วย 3 ลงตัว ให้พิมพ์ "Fizz"
- มิฉะนั้นถ้าตัวเลขหารด้วย 5 ลงตัว ให้พิมพ์ "Buzz"
- มิฉะนั้น ให้เขียนตัวเลขเป็นสตริง
ตัวอย่างโค้ด
class Solution(object):
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
result = []
for i in range(1, n+1):
if i % 3 == 0 and i % 5 == 0:
result.append("FizzBuzz")
elif i % 3 == 0:
result.append("Fizz")
elif i % 5 == 0:
result.append("Buzz")
else:
result.append(str(i))
return result
ob1 = Solution()
print(ob1.fizzBuzz(30))
อินพุต
30
เอาต์พุต
["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz","16","17","Fizz","19","Buzz","Fizz","22","23","Fizz","Buzz","26","Fizz","28","29","FizzBuzz"]