码迷,mamicode.com
首页 > 其他好文 > 详细

阿里笔试——获取格子编号

时间:2017-08-26 11:26:36      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:整数   编号   def   code   log   get   div   pre   i+1   

昨天晚上朋友给发过来看的题,感觉有点意思就尝试了一下,题目如下:

菜鸟仓库是一个很大很神奇的地方,各种琳琅满目的商品整整齐齐地摆放在一排排货架上,通常一种品类(sku)的商品会放置在货架的某一个格子中,格子设有统一的编号,方便工人们拣选。有一天沐哲去菜鸟仓库参观,无意中发现第1个货架格子编码为1,第2-3个分别为1,2,第4-6个格子分别是1,2,3,第7-10个格子编号分别是1,2,3,4,每个格子编号都是0-9中的一个整数,且相邻格子的编号连在一起有如下规律1|12|123|1234|...|123456789101112131415|...|123456789101112131415……n 这个仓库存放的商品品类非常丰富,共有1千万多个货架格子。沐哲很好奇,他想快速知道第k个格子编号是多少?

 

def getMark(k):
    sum=0
    for i in range(1, 100000):
        for j in range(1, i+1):
            if j <10:
                sum +=1
            elif j<100:
                sum += 2
            elif j <1000:
                sum += 3
            elif j <10000:
                sum += 4
            elif j <100000:
                sum += 5
            else:
                sum+=6
            if (sum-k) <len(str(j)):
                mark=0
                for s in str(j):
                    mark+=1
                    l=len(str(j))-mark
                    if (sum-k) == l:
                        return s

 

阿里笔试——获取格子编号

标签:整数   编号   def   code   log   get   div   pre   i+1   

原文地址:http://www.cnblogs.com/Luzenrocy/p/7434671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!