An integer has sequential digits if and only if each digit in the number is one more than the previous digit.
Return a sorted list of all the integers in the range [low, high]
inclusive that have sequential digits.
Example 1:
Input: low = 100, high = 300
Output: [123,234]
Example 2:
Input: low = 1000, high = 13000
Output: [1234,2345,3456,4567,5678,6789,12345]
Constraints:
-
10 <= low <= high <= 10^9
SOLUTION:
import bisect
import math
class Solution:
def sequentialDigits(self, low: int, high: int) -> List[int]:
nums = "123456789"
n = len(nums)
a = int(1 + math.log10(low))
b = int(1 + math.log10(high))
op = []
for l in range(a, b + 1):
for i in range(n - l + 1):
curr = int(nums[i:i + l])
if curr >= low and curr <= high:
bisect.insort(op, curr)
return op
Top comments (0)