程序员笔试之腾讯2021校园招聘后台&综合 编程题收集整理(十一)

1.小Q给你两个降序排序好的链表,小Q希望你能求出两个链表的公共部分。公共部分是指在两个链表中均出现过的子序列。
注:需要自己处理输入输出,请根据题意自己定义,链表节点,相关函数
输入描述:
输入的第一行为第一个链表的长度n.
第二行为第一个链表的每个节点值val.
第三行为第二个链表的长度m.
第四行为第二个链表的每个节点值va.
1<=n,m<=1000000, − 1 0 9 < = v a l < = 1 0 9 -10^9<=val<=10^9 109<=val<=109
输出描述:
降序输出一行整数,表示两个升序链表的公共部分的值。
示例输入:
6
6 5 4 3 2 1
5
6 5 3 2 1
示例输出:
6 5 3 2 1

2.小Q管理着一个大团队,大团队中有n个人,m个小团队,已知你每一个小团队里面的人数和每个人的编号(编号范围是0~n-1,一个人可能属于多个小团队,也有人可能一个小团队都不属于。)现在小Q 会下达一个通知给编号为0的人,所有和编号为0的人同属于某个小团体的人都会通过编号为0的人知晓这个通知,知晓通知的人会接着传达通知给自己小团队中的其他人,现在问你一共有多少个人知晓了通知(包括编号为0的人)。
输入描述:
输入第一行两个数n和m,代表有n个人,m个小团队
接下来m行,每一行第一个数先输入一个x,代表这个小团队有x个人,后面跟着x个数,代表这个小团队里面人的编号
1<=n<=100000
1<=m<=500
1<=x<=100
输出描述:
对于每组测试数据,请输出一个答案代表知晓了通知的人数。
示例输入:
50 5
2 1 2
5 10 11 12 13 14
2 0 1
2 49 2
4 6 7 8 2
示例输出:
7

3.小Q给你N个字符串,小Q希望你能统计出出现次数前k多和前k少(出现次数不能为0)的字符串。
注:对字符串字典序的解释:
1.字典序遵循的是逐字符比较的方式,越靠左的字符越会被先比较;
2.逐字符比较过程中,一旦发现某一对被比较的字符之间不相等时,这一对字符的大小关系即为这一对字符串的大小关系;
3.逐字符比较过程中,一旦出现某一个字符串的所有字符都已经经过比较,而另一字符串还存在未被比较的字符时,较短的字符串更小。
eg.“abc”<“abd”
eg.“abc”<“abcde”
输入描述:
输入的第一行为两个整数N,K.
接下来N行,每行一个字符串。
1<=N<= 1 0 5 10^5 105,字符串长度之和<= 1 0 5 10^5 105,1<=K<= 1 0 5 10^5 105
保证K合法,字符串中只有数字和英文字母。
输出描述:
输出2*K行,每行哟欧一个字符串和一个该字符串出现的次数。
前面K行输出前K多,你需要按照出现次数由大到小输出,若出现次数相同时字符串字典序较小的优先输出
后面K行输出前K少,你需要按照出现次数由小到大输出,若出现次数相同时字符串字典序较小的优先输出
示例输入:
4 2
1
1
2
3
示例输出:
1 2
2 1
2 1
3 1

4.给n个数字a1,a2,…,an,其中n为偶数
对于每个数字单独删除之后,剩下的n-1个元素中位数是多少。
输入描述:
第一行,一个偶数n(n<=200000)
第二行,输入n个数字,第i个数字表示ai,ai在32位整数范围内。
输出描述:
输出n行,第i行表示删除ai答案之后,剩下的n-1个元素中位数是多少
示例输入:
6
1 2 3 4 5 6
示例输出:
4
4
4
3
3
3

5.小Q发明了一种新的棋类游戏:红黑棋。
这种游戏现在有2n个棋子排成一排,其中有n颗黑色棋子,依次编号为1~ n,n颗红色棋子,依次编号为1~n.
现在小Q进行若干次以下操作:交换相邻的棋子。
现在给出每颗棋子的颜色与编号,小Q希望你能用最少的操作次数,使得红色棋子的编号从左到右依次增大,黑色棋子的编号从左到右依次增大,颜色不一定连续。
请你求出最少需要的次数。
输入描述:
第一行输出一个数字n(1<=n<=3000)
第二行包括一个字符串,即这2n颗棋子依次的颜色,‘R’表示红色棋子,’B’表示黑色棋子。
第三行包含2n个以空格分割的数字,即这2n颗棋子依次的编号。
输出描述:
输出一个整数表示最少操作次数
示例输入:
3
BRRBRB
2 3 1 1 2 3
示例输出:
5
说明:
初始:
BRRBRB
231123
第一次交换:
BRRBRB
213123
第二次交换:
BRBRRB
211323
第三次交换:
BRBRRB
211233
第四次交换:
BBRRRB
211233
第五次交换:
BBRRRB
121233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值