class Solution:
def selfDividingNumbers(self, left, right):
"""
:type left: int
:type right: int
:rtype: List[int]
"""
res = []
for i in range(left, right+1):
k = i
while k > 0:
j = k % 10
if j == 0 or i % j != 0:
break
k = k // 10
if k == 0:
res.append(i)
return res
解法二:
熟练运用py整数与字符串互相转换
class Solution:
def selfDividingNumbers(self, left: int, right: int) -> List[int]:
res = []
for num in range(left, right+1):
strs = str(num) #转成字符串
if '0' not in strs: #排除带0的
i = 0
#对每一位检验
while i < len(strs) and num % int(strs[i]) == 0:
i += 1
#若能走到最后,说明是自除数
if i == len(strs):
res.append(num)
return res