본문 바로가기
Leetcode

[LeetCode] Fizz Buzz 파이썬 (여러 솔루션)

by YGSEO 2021. 4. 16.
728x90

 

class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        res = []
        k = 1
        while k <= n:
            if k % 3 == 0 and k % 5 == 0:
                res.append("FizzBuzz")
            elif k % 3 == 0:
                res.append("Fizz")
            elif k % 5 == 0:
                res.append("Buzz")
            else:
                res.append(str(k))
            k += 1
        return res

 

class Solution(object):
    def fizzBuzz(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        result = []

        for i in xrange(1, n+1):
            if i % 15 == 0:
                result.append("FizzBuzz")
            elif i % 5 == 0:
                result.append("Buzz")
            elif i % 3 == 0:
                result.append("Fizz")
            else:
                result.append(str(i))

        return result

    def fizzBuzz2(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        l = [str(x) for x in range(n + 1)]
        l3 = range(0, n + 1, 3)
        l5 = range(0, n + 1, 5)
        for i in l3:
            l[i] = 'Fizz'
        for i in l5:
            if l[i] == 'Fizz':
                l[i] += 'Buzz'
            else:
                l[i] = 'Buzz'
        return l[1:]

    def fizzBuzz3(self, n):
        return ['Fizz' * (not i % 3) + 'Buzz' * (not i % 5) or str(i) for i in range(1, n + 1)]

    def fizzBuzz4(self, n):
        return ['FizzBuzz'[i % -3 & -4:i % -5 & 8 ^ 12] or repr(i) for i in range(1, n + 1)]

출처: github.com/jiapengwen/LeetCode/blob/master/Python/fizz-buzz.py

728x90

댓글