LeetCode 解題練習:Fizz Buzz

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.

題目原文描述 https://leetcode.com/problems/fizz-buzz/

中文描述

給一個整數 n,產生一個一維字串陣列 answer,此陣列須根據下列條件產生:

1. 如果 i 被 3 且也被 5 整除,answer[i] 等於 "FizzBuzz"。

2. 如果 i 被 3,answer[i] 等於 "Fizz"。

3. 如果 i 被 5 整除,answer[i] 等於 "Buzz"。

4. 其餘狀況 answer[i] 等於 i。


範例一:

輸入 n = 4

輸出 ['1', '2', 'Fizz', '4']

 

範例二:

輸入 n = 8

輸出 ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8']

 

範例三:

輸入 n = 12

輸出 ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz']

 

解法:

用 if 與取餘數運算子,迴圈的數值 i 從 1 開始到 n 來判斷即可。


Python Code

class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        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


沒有留言: