自除数
AC代码
class Solution:
def selfDividingNumbers(self, left: int, right: int) -> List[int]:
return [n for n in range(left, right + 1) if self.isFlag(n)]
def isFlag(self, n):
if '0' in str(n):
return False
t = n % 10
m = n
while t != 0:
if n % t != 0:
return False
else:
m = m // 10
t = m % 10
return True
官方代码
class Solution:
def selfDividingNumbers(self, left: int, right: int) -> List[int]:
def isSelfDividing(num: int) -> bool:
x = num
while x:
x, d = divmod(x, 10)
if d == 0 or num % d:
return False
return True
return [i for i in range(left, right + 1) if isSelfDividing(i)]
# 作者:LeetCode-Solution
一个做法,简单题里属于思路单纯的