题目描述
blablabla
样例
blablabla
算法1
() $O(n^2)$
blablabla
时间复杂度分析:blablabla
P 代码
class Solution(object):
def digitAtIndex(self, n):
"""
:type n: int
:rtype: int
"""
if n < 0:
return - 1
if n <= 9:
return n
pos = 0
f = [0 for _ in range(10)]
f[0] = 0
f[1] = 10
for i in range(2, 10):
f[i] = f[i - 1] + 9 * i * 10 ** (i - 1)
for i in range(1, 10):
if f[i] >= n:
pos = i
break
n = n - f[pos - 1]
tmp1 = n / pos
tmp2 = n % pos
tmp3 = tmp1 + 10 ** (pos - 1)
return int(tmp3 / 10 ** (pos - tmp2 - 1)) % 10