假设我们有一个数字n,我们必须构造一个从1到n的每个数字的列表,除非当它是3的倍数或数字中有3、6或9时,它应该是字符串“ no-fill ”。
因此,如果输入为20,则输出将为['1','2','clap','4','5','clap','7','8','clap' ,“ 10”,“ 11”,“拍”,“拍”,“ 14”,“拍”,“拍”,“ 17”,“拍”,“拍”,“ 20”]]
为了解决这个问题,我们将遵循以下步骤-
字符串:=“不填充”
ls:=将数字列表作为从1到n的字符串
对于范围0到ls-1的i,执行
ls [i]:=字串
ls [i]:=字串
ls [i]:=字串
ls [i]:=字串
如果ls [i]被3整除,则
否则,当ls [i]中存在“ 3”时,则
否则,当ls [i]中存在“ 6”时,则
否则,当ls [i]中存在'9'时,则
返回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']