Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/660.html
660. Remove 9
Level
Hard
Description
Start from integer 1, remove any integer that contains 9 such as 9, 19, 29…
So now, you will have a new integer sequence: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, …
Given a positive integer n
, you need to return the n-th integer after removing. Note that 1 will be the first integer.
Example 1:
Input: 9
Output: 10
Hint: n will not exceed 9 x 10^8
.
Solution
In the new integer sequence, the n-th number is just n
represented in base 9. So simply return the base 9 representation of number n
.
-
public class Solution { public int newInteger(int n) { String radix9Str = ""; while (n > 0) { int remainder = n % 9; radix9Str = remainder + radix9Str; n /= 9; } int radix9 = Integer.parseInt(radix9Str); return radix9; } }
-
class Solution(object): def newInteger(self, n): """ :type n: int :rtype: int """ ans = 0 k = 1 while n > 0: ans += (n % 9) * k k *= 10 n /= 9 return ans