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

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

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

阿里笔试——获取格子编号的相关文章

跳格子问题——阿里笔试

有1,2,3,......无穷个格子,你从1号格子出发,每次1/2概率向前跳一格,1/2概率向前跳两格,走到格子编号为4的倍数时结束,结束时期望走的步数为____. 2 12/5 14/5 16/5 18/5 4 这个问题,很显然考察的是递归问题: 定义step(i,j)为第i号格子带第j号格子的期望值: step(1,4)为从第一格跳到第四格的期望,要到第四格,则只能先到第二格(期望0.5*(step(1,2)+1))或者是第三格(期望0.5*(step(1,3)+1)):其中1表示到达第2格

获取CPU编号

void get_cpu_id() {    char szBuf[256] = {0}; unsigned int s1 = 0U; unsigned int s2 = 0U; _asm{  MOV EAX,01H  XOR EDX,EDX CPUID     MOV DWORD PTR[s1],EDX    MOV DWORD PTR[s2],EAX  } printf(szBuf, "%08X%08X", s1, s2); } 获取CPU编号

C#获取CPU编号

//System.Management;//需要添加引用(系统自带) /// <summary> /// 获取cpu编号 /// </summary> /// <returns></returns> public String GetCpuID() { try { ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection

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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #e4af0a; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; f

阿里云中获取文件及目录列表的方法

1 获取指定bucket下的文件列表(php-sdk 示例) $prefix = 'dir/'; $delimiter = '/'; $nextMarker = ''; $maxkeys = 30; while (true) { $options = array( 'delimiter' => $delimiter, 'prefix' => $prefix, 'max-keys' => $maxkeys, 'marker' => $nextMarker, ); var_dump($

腾讯、阿里笔试面试体会

最近这个月参加阿里.腾讯2014实习生招聘,收获很多,得到了教训,吸收了经验,清楚了方向,现在就具体说说吧 1.阿里巴巴实习招聘:出于一颗打酱油的心情和几个小伙伴去投了简历,过了几天通知笔试,心里很虚,没什么准备,考试内容主要是网络有1题.数据结构.程序阅读题.Linux命令题.指针内存.操作系统题目,数据结构和程序阅读题很多,倒数第二题找出一个二分查找法的bug,考完出来心想肯定挂了,有些数据结构的题不会,如求取叶子节点的个数(忘记公式了),就在我以为挂定了时候,过了5天左右尽然通知我面试,有

某次阿里笔试不会做的一道数学题【组合数学】

某次投了阿里算法岗玩,有一道题是这样的: 某张试卷有20题,做对一个得5分,做错一个得-3分,不做得0分.问:最后得分有几种情况? 随便写个程序暴力算一下即可. 那么如果范围比较大应该怎么办? 今天看<组合数浅谈>(王连笑著,哈尔滨工业大学出版社)里有讲解法. 设有n道题,评分标准如下:每道题答对得p分,答错扣q分,不答得0分,p, q ∈ N+, 且p, q互质,问:不同的成绩最多有几种? 题解: 设答对x题,答错y题,不答z题,那么显然 x+y <= n,直线左下角在第一象限内围成的

BitmapImage处理网络图片,例如阿里云获取的图片。异步加载到需要显示的控件上。提升速度非常明显。

想直接把网络图片赋给控件,又要下载又要缓存,速度非常慢.不流畅. 需要进行处理,异步加载会显著提升速度.方法如下: public static BitmapImage ByteArrayToBitmapImage(byte[] byteArray) { BitmapImage bmp = null; try { bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = new MemoryStream(byteArray); bmp

阿里笔试1

package sort; import java.util.ArrayList; import java.util.Scanner; public class Gongyi { public static void main(String[] args) { // TODO Auto-generated method stub // //第一行,表示马老师下个月的空闲时间段.注意:一天内只会有一个连续空闲时间段. 格式为"day:hs-he:loc",其中day为当月的x日,hs表示