400 Nth Digit

Given an integer `n`, return the ` nth` digit of the infinite integer sequence `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]`.

Example 1:

``````Input: n = 3
Output: 3
``````

Example 2:

``````Input: n = 11
Output: 0
Explanation: The 11th digit of the sequence
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0,
which is part of the number 10.
``````

Constraints:

• `1 <= n <= 231 - 1`
 `````` 1 2 3 4 5 6 7 8 9 10 11 `````` ``````def findNthDigit(n: int) -> int: length = 1 # number of digits: 1, 2, 3 ... range_count = 9 # count of numbers for current length: 9, 90, 900 ... num = 1 # current number: 1, 10, 100, 1000 ... while n > length * range_count: n -= length * range_count length += 1 range_count *= 10 num *= 10 num += (n-1) / length return int(str(num)[(n-1) % length])``````
 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 `````` ``````func findNthDigit(n int) int { length := 1 rangeCount := 9 num := 1 for n > length*rangeCount { n -= length * rangeCount length += 1 rangeCount *= 10 num *= 10 } num += (n - 1) / length return int(strconv.Itoa(num)[(n-1)%length] - '0') }``````