拼多多软开秋招笔试——算法真题

时间:2024.9

1、多多君最近在给多多字典中的单词进行排序,单词都是由大写的英文字母A。Z组成。
一般的字典是按照字典序进行排序:从左到石逐一比较两个单词中字符,遇到某一位的字符更小的单词则排在前面,例如:
A<B<BA<BAC<C。
多多君想定义一种新的比较方式来给多多字典排序:
1.包含"PDD"的单词要排在不包含"PDD"的单词的前面
2. 同为包含"PDD"的单词、以及不包含"PDD"的单词之中,则还是按照字典序小的排在前面。
多多君想知道,对于给定N个单词的多多词典,按照新的排序方式的前M个单词分别是什么。
输入描述:第一行,两个整数N和M,分别表示总的单词数,以及要进行排序的前M个单词数。(1 <= N <= 1.000, 1 <= M <≡ N)
接下来N行,每行分别表示一个单词(由大写英文字母组成,1<=单词长度<100)。
输出描述:输出M行,按照新的比较方式,按顺序每行分别输出一个单词。

输入:
3 1
ABC
APDD
PDD
输出:APDD
说明:因为APDD和PDD均包括PDD,所以这两个单词要排在ABC前面。而在都包含PDD的单词之中,APDD的字典序小于PDD,因此根据新的排序方式可得
APDD <PDD < ABC,即排在第一位的单词是:APDD

2、多多得到了一个由n个整数 a1, a2,… an 构成的数组a,这n个整数的平均值表示为k(注意k可能不是一个整数)。
多多想从数组a中删除两个数字,并使得剩下的n-2 个整数的平均值仍然等于K。
多多现在需要你帮助计算出对于数组a,有多少组数字 [ai,aj](1<=i<j<= n) 删除后剩下整数的平均值等于原数组的平均值。
输入描述:第一行包含一个整数t(1<=t<= 104),表示有t组测试数据,每组测试数据包含两行。第一行包含一个数字n(3<=n<=2*10^5),n表示数组中整数的个数,
接下来第二行包含n个整数a1, a2,… an,其中对于任意1<=i<=n 都有 0 <= a¡<10^9,所有测试用例中n数值的和不会超过 2*10^5。
输出描述:对于每组测试数据,分别输出一个整数:
代表有多少组数字[ai,aj](1<=i<j<=n)使得删除这两个数字后剩余n-2个整数的平均值等于原数组a中n个整数的平均值

输入:
4
4
8 8 8 8
3
50 20 10
5
1 4 7 3 5
7
1 2 3 4 5 6 7
输出:
6
0
2
3
说明:第一组测试用例中,删除任意两个数字都满足要求,共有6种组合,第二组测试用例中,没有能满足要求的组合,第三组测试用例中,删除第1个和第3个数,或者删除第4个和第5个数字,共有2种组合,第四组测试用例中,删除第1个和第7个数字,或者删除第2个和第6个数字,或者删除第3个和第5个数字,共有3种组合。

3、对于一个长度为n的整数序列 a1,a2,...a,是否存在等长的序列 b,b2.·.,bn,对于任意1≤i≤n存在1≤j,k≤n,使得ai=bj-bk
输入描述:第一行一个整数t,表示测试用例的数量。(1<t< 10),对于每组测试用例:第一行是一个整数n,表示序列长度。(1≤n≤10),第二行是n个整数:a1,a2,···,an,以空格隔开(-10^6 < ai<10^6)。
输出描述:对于每组测试用例,分别输出一行:如果存在满足条件的序列b1,b2,…,bn输出"yes",否则输出"no"。

输入:
1
2
33 33
输出:
yes

输入:
3
1
-74
2
0 65
3
-81 42 29
输出:
no
yes
no

4、多多炸鸡店为了回馈老客,自动只换成一张免单敬量的汉堡积分,且每100个汉堡积分券,可以免费吃任意汉堡。免单券的有效期为3天,例如第1天获得免单券后,可以在第2、3、4天使用,到了第5天会自动过期失效,且使用免单券吃掉的汉堡不能获得汉堡积分
多多君希望你能帮助他找到一个最省钱的吃汉堡计划:未来N天每天要吃一个汉堡的情况下最少要花多少钱。
输入描述:第一行,一个整数T,表示测试用例的组数(1 <= T <= 10 ),对于每组测试用例:
第一行,1个整数N,表示未来要吃汉堡的天数。(1<= N <= 1000),接下来N行,每行一个整数Pi,表示第i天多多君要购买的汉堡价格。(1<= Pi <= 50)
输出描述:输出一行,一个整数,表示吃完所有汉堡的最小花费

输入:
1
3
50
50
40
输出:
100
全部评论

相关推荐

07-03 15:31
门头沟学院 C++
没钱的牛友们可以选择加入丐帮,主线任务只有不被城管抓住,低风险高收入,有小概率日如过万&nbsp;雾哥们虽然没工资,但是哥们也没有工作啊!这么一想还挺爽的,毕竟还要上大学,当然学校里或者附近也有兼职,基本可以按照课表安排,有学长做了一学期,每天(工作日且晴天)不到一小时,一周一百多,反正我是不想做,不是不想要钱,只是懒~正题开始,在校时父母每月给1000左右,基本够用,每天吃食堂基本不到30,如果早八没课,连早餐钱也省了,偶尔点个外卖,一个月伙食费在850左右,之前看到老同学晒图,饭菜价格基本打6折,狠狠羡慕了,虽然过节时,学校会发餐券,但一次就抵15元,难堪大用。,但有同学毕业季时,捡到学长们的餐券(大四专属),在食堂猛猛炫了两天,竟然是洪福齐天蛊!食堂阿姨也是只管收餐券,不认人,可恶,明年我也要去捡,扯远了,每个月还有水电费,电费大家平摊,一月2、30,水费则是饮用水和洗澡水,每月不到10元,讲个笑话,洗一次澡够我喝3天便宜热水或1天贵点的热水,虽然不知道为什么学校的水分3种价格(便宜热水,中等冷水,和贵热水),但我喝不出来其中差别,小知识,胖乖上刷点金币,每次灌水就只需1分钱,原本我是想去git上看看是否有插件的,但是太懒了,就用连点器代替了,刷一天,喝3天,我也不多刷,因为懒,这下洗一次澡就顶我一个月饮水费了,那么每次饮水1分,要降低消费,就要大量少次灌水,那么......,但要注意不要把水放臭了(快进到我再也不玩抽象了),每个月还要网购点物资,基本上也就剩下几十元,攒钱好难啊qwq
每个月的工资都是怎么分配...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务