阿裏筆試——獲取格子編號
阿新 • • 發佈:2017-08-26
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 這個倉庫存放的商品品類非常豐富,共
昨天晚上朋友給發過來看的題,感覺有點意思就嘗試了一下,題目如下:
菜鳥倉庫是一個很大很神奇的地方,各種琳瑯滿目的商品整整齊齊地擺放在一排排貨架上,通常一種品類(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
阿裏筆試——獲取格子編號