Nth Digit LeetCode solution in Python

1
class Solution:
2
def findNthDigit(self, n: int) -> int:
3
low, high = 1, 0
4
place = 1
5

6
sum_ = 0
7

8
while True:
9
high = 10**place - 1
10
digits_sum = (high - low + 1) * place
11

12
if sum_ <= n <= digits_sum + sum_:
13
break
14
else:
15
low = high + 1
16
sum_ += digits_sum
17
place += 1
18

19
remaining_digits = n - sum_
20

21
position = (remaining_digits - 1) // place
22
index_ = remaining_digits - position * place - 1
23

24
number = low + position
25
# return str(number)[index_]
26
count = 0
27
index_ = place - 1 - index_
28
l = []
29
#
30
while number:
31
if count == index_:
32
return number % 10
33
number = number // 10
34
count += 1

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0