找规律题目。先找第几个数字,再从中取字符。
- digit代表这一段数字的位数(1-9是1位,10-99是两位…)
- times代表的是当前位数对应的数量级(10, 100, 1000…)
- count代表的是当前位数、当前数量级的字符总数(比如1位的有9*1个,2位的有90*2个…)
- 先递推从n上减去每个数量级的数字总数直到剩下的n已经无法容纳下一级的字符总数,那么剩下的n就是介于两级之间了。用当前字符数的数量基数times加上n-1整除当前区段的位数就可以定位到是第几个数字了。
- 把这个数字变成字符串,n-1对digit的余数作为index,即可得到答案。
代码:
| 1 | def findNthDigit(self, n: int) -> int: | 



