660 Remove 9

Start from integer 1, remove any integer that contains 9 such as 9, 19, 29...

Now, you will have a new integer sequence [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, ...].

Given an integer n, return the nth (1-indexed) integer in the new sequence.

Example 1:

Input: n = 9
Output: 10

Example 2:

Input: n = 10
Output: 11

Constraints:

  • 1 <= n <= 8 * 108

The answer is the n-th base-9 number.

1
2
3
4
5
6
7
class Solution:
    def newInteger(self, n: int) -> int:
        res = ''
        while n:
            res = str(n % 9) + res
            n //= 9
        return int(res)