1. 程式人生 > >阿裏筆試——獲取格子編號

阿裏筆試——獲取格子編號

urn color span mar 無意中 神奇 get size ret

昨天晚上朋友給發過來看的題,感覺有點意思就嘗試了一下,題目如下:

菜鳥倉庫是一個很大很神奇的地方,各種琳瑯滿目的商品整整齊齊地擺放在一排排貨架上,通常一種品類(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

阿裏筆試——獲取格子編號