剑指offer44.数字序列中某一位的数字

数字以0123456789101112131415…的格式序列化到一个字符序列中。求任意第 n 为对应的数字

思路:如求序列的1001位。前10位时09这10个只有1位的数字。接下来180位数字是90个1099的两位数,再接下来2700位是900个100~999的三位数,所以1001-10-180=811位是三位数中的一位。811=270*3+1,所以811时从100开始的第270个数字即370的中间一位,也就是7.

问题:规律是什么,不能写无穷个 if elif————找规律啊兄弟

class Solution(object):
    def digitAtIndex(self, n):
        """
        :type n: int
        :rtype: int
        """
        temp = 1
        while 1:
            index = temp*9*10**(temp-1)
            if n

你可能感兴趣的:(剑指offer44.数字序列中某一位的数字)