Logo
    Akhil Abraham
    Akhil Abraham
    0412 - Fizz Buzz
    0412 - Fizz Buzz

    0412 - Fizz Buzz

    Difficulty
    Easy
    Language
    Python
    URL
    https://leetcode.com/problems/fizz-buzz/

    Solution 1 - Simple Iterative Approach

    Iterate from 1 to n. For each number, check divisibility by both 3 and 5 first (for "FizzBuzz"), then by 3 alone (for "Fizz"), then by 5 alone (for "Buzz"). If none apply, convert the number to a string. Append the result to the answer list.

    TimeComplexity:O(n)TimeComplexity: O(n)TimeComplexity:O(n)
    SpaceComplexity:O(n)SpaceComplexity: O(n)SpaceComplexity:O(n)

    Solution 2 - String Concatenation

    Instead of checking divisibility by 15 separately, build the output string by concatenating "Fizz" and "Buzz" independently. If the resulting string is empty, use the number itself. This approach scales better if more mappings are added.

    TimeComplexity:O(n)TimeComplexity: O(n)TimeComplexity:O(n)
    SpaceComplexity:O(n)SpaceComplexity: O(n)SpaceComplexity:O(n)
    Logo

    ©️ 2020-2026, Akhil Abraham.

    LinkedInGitHubMediumX
    """ 0412.1 - Fizz Buzz - Solution 1 - Simple Iterative Approach """
    
    #####################################################################################
    # Imports
    #####################################################################################
    from typing import List
    
    #####################################################################################
    # Classes
    #####################################################################################
    class Solution:
        """Solution Class"""
    
        def fizzBuzz(self, n: int) -> List[str]:
            """Fizz Buzz Function"""
            answer = []
    
            for i in range(1, n + 1):
                if i % 3 == 0 and i % 5 == 0:
                    answer.append("FizzBuzz")
                elif i % 3 == 0:
                    answer.append("Fizz")
                elif i % 5 == 0:
                    answer.append("Buzz")
                else:
                    answer.append(str(i))
    
            return answer
    
    
    #####################################################################################
    # Functions
    #####################################################################################
    def testcase():
        """Test Function"""
        print(Solution().fizzBuzz(3))   # ["1", "2", "Fizz"]
        print(Solution().fizzBuzz(5))   # ["1", "2", "Fizz", "4", "Buzz"]
        print(Solution().fizzBuzz(15))  # ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
    
    
    #####################################################################################
    # Main
    #####################################################################################
    if __name__ == "__main__":
        testcase()
    
    """ 0412.2 - Fizz Buzz - Solution 2 - String Concatenation """
    
    #####################################################################################
    # Imports
    #####################################################################################
    from typing import List
    
    #####################################################################################
    # Classes
    #####################################################################################
    class Solution:
        """Solution Class"""
    
        def fizzBuzz(self, n: int) -> List[str]:
            """Fizz Buzz Function"""
            answer = []
    
            for i in range(1, n + 1):
                s = ""
                if i % 3 == 0:
                    s += "Fizz"
                if i % 5 == 0:
                    s += "Buzz"
                answer.append(s if s else str(i))
    
            return answer
    
    
    #####################################################################################
    # Functions
    #####################################################################################
    def testcase():
        """Test Function"""
        print(Solution().fizzBuzz(3))   # ["1", "2", "Fizz"]
        print(Solution().fizzBuzz(5))   # ["1", "2", "Fizz", "4", "Buzz"]
        print(Solution().fizzBuzz(15))  # ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]
    
    
    #####################################################################################
    # Main
    #####################################################################################
    if __name__ == "__main__":
        testcase()