拼多多2021笔试真题集
小编:管理员 4213阅读 2021.06.08
一、[编程题]多多的数字组合:
多多君最近在研究某种数字组合:
定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N。满足条件的数字可能很多,找到其中的最小值即可。
多多君还有很多研究课题,于是多多君找到了你--未来的计算机科学家寻求帮助。
输入描述:
共一行,一个正整数N,如题意所示,表示组合中数字不同数位之和。 (1 <= N <= 1,000)
输出描述:
共一行,一个整数,表示该组合中的最小值。 如果组合中没有任何符合条件的数字,那么输出-1即可。
输入例子1:
5
输出例子1:
5
例子说明1:
符合条件的数字有:5,14,23,32,41 其中最小值为5
输入例子2:
12
输出例子2:
39
例子说明2:
输入例子3:
50
输出例子3:
-1
例子说明3:
没有符合条件的数字 (T▽T)
二、[编程题]多多的字符变换:
多多君最近在研究字符串之间的变换,可以对字符串进行若干次变换操作:
- 交换任意两个相邻的字符,代价为0。
- 将任意一个字符a修改成字符b,代价为 |a - b|(绝对值)。
现在有两个长度相同的字符串X和Y,多多君想知道,如果要将X和Y变成两个一样的字符串,需要的最少的代价之和是多少。
输入描述:
共三行,第一行,一个整数N,表示字符串的长度。 (1 <= N <= 2,000) 接下来两行,每行分别是一个字符串,表示字符串X和Y。 (字符串中仅包含小写字母)
输出描述:
共一行,一个整数,表示将X和Y变换成一样的字符串需要的最小的总代价。
输入例子1:
4 abca abcd
输出例子1:
3
例子说明1:
其中一种代价最小的变换方案: 都修改为abcd,那么将第一个字符串X最后一个字符a修改为d,代价为|a - d| = 3。
输入例子2:
4 baaa aabb
输出例子2:
1
例子说明2:
其中一种代价最小的变换方案: 首先将第一个字符串通过交换相邻的字符:baaa -> abaa -> aaba,代价为0。 然后将第二个字符串修改最后一个字符b:|b - a| = 1。 两个字符都修改为aaba,所以最小的总代价为1。
输入例子3:
3 abc xyz
输出例子3:
69
三、[编程题]多多的求和计算:
多多路上从左到右有N棵树(编号1~N),其中第i个颗树有和谐值Ai。
多多鸡认为,如果一段连续的树,它们的和谐值之和可以被M整除,那么这个区间整体看起来就是和谐的。现在多多鸡想请你帮忙计算一下,满足和谐条件的区间的数量。
输入描述:
第一行,有2个整数N和M,表示树的数量以及计算和谐值的参数。 ( 1 <= N <= 100,000, 1 <= M <= 100 ) 第二行,有N个整数Ai, 分别表示第i个颗树的和谐值。 ( 0 <= Ai <= 1,000,000,000 )
输出描述:
共1行,每行1个整数,表示满足整体是和谐的区间的数量。
输入例子1:
5 2 1 2 3 4 5
输出例子1:
6
例子说明1:
长度为1: [2], [4] 长度为2: 无 长度为3: [1,2,3], [3,4,5] 长度为4: [1,2,3,4], [2,3,4,5] 长度为5: 无 共6个区间的和谐值之和可以被2整除。
四、[编程题]多多的骰子组合:
多多君拼团购买了N个骰子,为了方便后面进行活动,多多君需要将这些骰子进行分类。
两个骰子为同类的定义是:
1
|
将其中一个骰子通过若干次上下、左右或前后翻转后,其与另一个骰子对应的6面数字均相等。
|
输入描述:
第一行1个整数N,表示骰子的数量。 (1 <= N <= 1,000) 接下来N行,每行6个数字(1~6,且各不相同) 其中第i行表示第i个骰子当前上、下、左、右、前、后这6面的数字。
输出描述:
共2行: 第一行1个整数M,表示不同种类的骰子的个数 第二行M个整数,由大到小排序,表示每个种类的骰子的数量
输入例子1:
2 1 2 3 4 5 6 1 2 6 5 3 4
输出例子1:
1 2
例子说明1:
第二个骰子相当于是第一个骰子从左向右旋转了一面得到,属于同类。
输入例子2:
3 1 2 3 4 5 6 1 2 6 5 3 4 1 2 3 4 6 5
输出例子2:
2 2 1
例子说明2:
第三个骰子无法通过任何旋转变换成第一个或第二个骰子。
输入例子3:
10 2 5 1 3 4 6 5 4 3 2 1 6 1 4 6 2 3 5 1 5 6 3 4 2 6 4 2 1 5 3 3 6 4 5 2 1 1 6 3 4 2 5 5 1 4 2 6 3 6 2 3 1 5 4 5 3 6 1 4 2
输出例子3:
9 2 1 1 1 1 1 1 1 1
例子说明3:
只有第4个骰子(1 5 6 3 4 2)与第8个骰子(5 1 4 2 6 3)属于同一类。 一种可能的变换方式: 1) 首先从右向左翻转1次 (1 5 6 3 4 2) -> (1 5 4 2 3 6) 2) 然后从上向下翻转2次 (1 5 4 2 3 6) -> (6 3 4 2 1 5) -> (5 1 4 2 6 3)
相关推荐
- 阿尔卡特朗讯 2021 软件工程师+测试工程师面试题 第1题:输出结果4 #include void Example(char acHello ) { printf("%d",sizeof(acHello)); //printf("%d",strlen(acHello));//自己加的区别一下 } void main() { char acHello ="hello"; Example(acHello); return …
- iOS "锁"的作用及使用方式 锁是什么?为什么要有锁?锁的分类问题为什么 OSSpinLock 不安全?解决自旋锁不安全问题有几种方式为什么换用其它的锁,可以解决 OSSpinLock 的问题?自旋锁和互斥锁的关系是平行对立的吗?信号量和互斥量的关系信号量和条件变量的区别锁是什么锁 -- 是保证线程…
- 经典笔试题-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 题:基础10 道,中等难度2 道)110、数据库,比如100 用户同时来访,要采取什么技术解决?【基础】 答:可采用连接池。111、什么是ORM?【基础】 答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象…