Python 中的 3-6-9


假設我們有一個數字 n,我們需要構造一個列表,其中包含從 1 到 n 的每個數字,但如果它是 3 的倍數或數字中包含 3、6 或 9,則應為字串“no-fill”。

因此,如果輸入為 20,則輸出將為 ['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap', '10', '11', 'clap', 'clap', '14', 'clap', 'clap', '17', 'clap', 'clap', '20']

為了解決這個問題,我們將遵循以下步驟:

  • 字串 := "no-fill"

  • ls := 建立一個從 1 到 n 的數字字串列表

  • 對於範圍為 0 到 ls 大小 - 1 的 i,執行以下操作:

    • 如果 ls[i] 可以被 3 整除,則:

      • ls[i] := 字串

    • 否則,如果 ls[i] 中存在 '3',則:

      • ls[i] := 字串

    • 否則,如果 ls[i] 中存在 '6',則:

      • ls[i] := 字串

    • 否則,如果 ls[i] 中存在 '9',則:

      • ls[i] := 字串

  • 返回 ls

讓我們看看以下實現以更好地理解:

示例

即時演示

class Solution:
   def solve(self, n):
      string = "no-fill"
      ls=[str(i) for i in range(1,n+1)]
      for i in range(len(ls)):
         if int(ls[i])%3==0:
            ls[i]=string
         elif '3' in ls[i]:
            ls[i]=string
         elif '6' in ls[i]:
            ls[i]=string
         elif '9' in ls[i]:
            ls[i]=string
      return ls
ob = Solution()
print(ob.solve(20))

輸入

20

輸出

['1', '2', 'clap', '4', '5', 'clap', '7', '8', 'clap', '10', '11', 'clap', 'clap', '14', 'clap', 'clap', '17', 'clap', 'clap', '20']

更新於: 2020年9月2日

764 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告