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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里笔试——获取格子编号相关的知识,希望对你有一定的参考价值。

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

菜鸟仓库是一个很大很神奇的地方,各种琳琅满目的商品整整齐齐地摆放在一排排货架上,通常一种品类(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

 

以上是关于阿里笔试——获取格子编号的主要内容,如果未能解决你的问题,请参考以下文章

阿里笔试编程题——根据商品编号排序(多级排序)

2017年阿里校招一道题

[2019 美团春招实习笔试] 2. 染色格子数量

年前最后一波装逼记一次阿里面试,我是如何用一行代码解决约瑟夫环问题的

笔试强训每日一题(十三)

阿里专家精心整理分享的Java程序员面试笔试通关宝典PDF