412. Fizz Buzz

412. Fizz Buzz

# Approach 1.
# Time Complexity: O(n)
# Space Complexity: O(1)
class Solution1:
    def fizzBuzz(self, n):
        if n <= 0:
            return []
        answer = []
        for i in range(1, n + 1):
            if i % 15 == 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

 

 

# Approach 2. String Concatenation
# Time Complexity: O(n)
# Space Complexity: O(1)
class Solution2:
    def fizzBuzz(self, n):
        if n <= 0:
            return []
        answer = []
        for i in range(1, n + 1):
            ans_str = ''
            if i % 3 == 0:
                ans_str += 'Fizz'
            if i % 5 == 0:
                ans_str += 'Buzz'
            if ans_str != '':
                answer.append(ans_str)
            else:
                answer.append(str(i))
        return answer

 

Approach 3. Hash

Using

for key in fizz_buzz_dict.keys():
    if i % key == 0:
        ans_str += fizz_buzz_dict[key]

 

Instead of

if i % 3 == 0:
    ans_str += 'Fizz'
if i % 5 == 0:
    ans_str += 'Buzz'

 

 

# Approach 3. Hash
# Time Complexity: O(n)
# Space Complexity: O(1)
class Solution3:
    def fizzBuzz(self, n):
        if n <= 0:
            return []
        answer = []
        fizz_buzz_dict = {3: 'Fizz', 5: 'Buzz'}
        for i in range(1, n + 1):
            ans_str = ''
            for key in fizz_buzz_dict.keys():
                if i % key == 0:
                    ans_str += fizz_buzz_dict[key]
            if ans_str != '':
                answer.append(ans_str)
            else:
                answer.append(str(i))
        return answer

 

Leave a Reply