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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告