数字既然是要sequential的,尝试从‘123456789’中来截取就可以了。最短的截取长度应该和最小的数字low一样。然后逐渐增加截取长度,知道某个截取长度下的数字超过了high,则之后这个截取长度的滑动窗口再往后面滑动,截取出来的数字一定超过high,并且更长的截取长度得到的数字也一定大于high。结束滑动截取的过程。
class Solution:
def sequentialDigits(self, low: int, high: int) -> List[int]:
num = '123456789'
cut = len(str(low))
res = []
for cut_len in range(cut, 10):
for i in range(10-cut_len):
if low <= int(num[i:i+cut_len]) <= high:
res.append(int(num[i:i+cut_len]))
elif int(num[i:i+cut_len]) > high:
return res
return res