2023暑期实习-笔试-拼多多-算法实习生

公司:拼多多

岗位:算法实习生

笔试平台:牛客

考试题型:编程 4 道

考试时长:120分钟

考试时间:2023-03-12 19:00-21:00

多多的压缩编码II

描述

还原压缩后的字符串。

示例

示例1

输入

10a1b1c

输出

aaaaaaaaaabc

示例2

输入

1P2D1p2d1P1D1d

输出

PDDpddPDd

思路

直接模拟,遇到数字累计次数,遇到字母则追加到答案中。

代码

s = input()
ans = ''
cnt = ''
for c in s:
    if c.isdigit():
        cnt += c
    else:
        cnt = int(cnt)
        ans += c * cnt
        cnt = ''
print(ans)

多多的飞机大战游戏

描述

多多最近下载了一款飞机大战的游戏,多多可以通过游戏上的不同发射按键来控制飞机发射子弹:

按下A键,飞机会发射出2枚子弹,每个子弹会对命中的敌人造成1点固定伤害,但不能作用于同个敌人。

按下B键,飞机会发射出1枚子弹,子弹会对命中的敌人造成巨额伤害并瞬间将其秒杀。

多多是个游戏高手,总是能操控子弹命中想要命中的敌人。这个游戏—共有 T 个关卡,消灭当前关卡全部敌人后,发射出去多余的子弹会消失,游戏会自动进入下一个关卡。

假设每个关卡都会在屏幕中同时出现N个敌人,这N个敌人所能承受的伤害也已经知道。多多想知道,每个关卡自己最少按几次发射按键就可以将敌人全部消灭。

输入描述

第一行输入一个固定数字T(1<=T=1000)表示关卡的总数量,N(1<=N<=200)表示每个关卡出现的敌人数量。

接下来T行,每行有N个数字D1,D2,...,Dw(1<= Di <= 200)分别表示这N个敌人所能承受的伤害。

输出描述

结果共有N行,每行一个数字,分别表示对于这个关卡,最少按几次发射按键就可以将敌人全部消灭。

示例

输入

3 3

1 2 1

2 3 2

1 2 3

输出

2

3

3

说明

游戏共有3个关卡,每个关卡会出现3个敌人。

第一个关卡,先按下A建控制子弹消灭第1个和第3个敌人后,再按下B键消灭第二个敌人,所以最少按2次。

第二个关卡,按下3次B键分别消灭这3个敌人。

第三个关卡,按下3次B键分别消灭这3个敌人。也可以按3次A建,敌人剩余承受伤害的变化为:[1,2,3]->[1,1,2]->[0,0,1]->[0,0,0]

思路

贪心:优先使用A键,然后使用B键。如果敌人生命值等于1,统计生命值等于1的敌人数量,杀掉2个敌人需要使用1次A键;如果敌人生命值大于1,直接使用B键,需要1次按键。

代码

T, N = map(int, input().split())
for i in range(T):
    D = list(map(int, input().split()))
    cnt = 0
    for j in D:
        if j == 1:
            cnt += 1
    ans =  N - cnt // 2
    print(ans)

多多的团建计划

描述

多多君准备了三个活动(分别编号A、B和C),每个活动分别有人数上限以及每个人参加的费用。

参加团建的有N个人(分别编号1~N),每个人先投

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

一个普通数据人的成长之路 文章被收录于专栏

记录实习和校招的笔试面试(标题年份表示笔试或面试的年份)和个人成长,牛友们的点赞、评论、收藏就是更新的动力和支持~

全部评论
大佬拼多多笔试前是不是还有个测试呢?还是这个测试链接就是笔试了
点赞 回复 分享
发布于 2023-03-15 14:35 四川
大佬出笔试结果了么,我4道全过了,但是好像没有收到结果呀
点赞 回复 分享
发布于 2023-03-15 20:10 辽宁
马上要做第二轮笔试了,求问有选择题吗,还是只有算法题,谢谢
点赞 回复 分享
发布于 2023-03-29 22:21 黑龙江

相关推荐

4 41 评论
分享
牛客网
牛客企业服务