腾讯2023春招笔试

1. 分组链表

牛牛有一个初给链表,链表的头节点为head,牛牛会将链表中两个相邻元素进行组队。若链表长度为奇数,则最后一个元素单独一组。如有链表:

1
1->2->3->4->5

组队后为

1
[1->2]->[3->4]->[5]

请返回交换以后的新链表。

示例1

输入

1
{1,2,3,4,5}

输出

1
{3,4,1,2,5}

备注

1≤结点数≤1000,1≤val≤1000

2.重组字符串

1.从每个字符串里面都抽取1个字母组成
2.新字行串不能有2个相同的字母
谓问总共能组成多少个重组字符串

输入描述

第一行输入監数为N
第二行到第N+1行输人心个字符串,全部由小写宇母组成
2<=N<=6
1<=len(字符串)<=8

输出描述

输出一个整数,表示能组成的重组字符串的个数

示例1

输入

1
2
3
4
3
ab
ca
ccb

输出

1
2

3.最小的权值排列数组

1
2
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++ 262144K,其他语言 524288K

给定2个整数数组A、B,数组长度都为N,数组B为权值致组,权值效据范围为[0,2],请你构造一个数组C,满足以下条件:
1.长度为N
2.数组元素范围为[1,N],且元素值不能重复,即为N的一个排列
3.如果数组下标i<j,且有B[i]>B[j],那么一定要保证C[i]>C[j]
4.数组C与数组A每个元素之差的和的绝对值最小,即i=1nCiAi\sum_{i=1}^n|C_i-A_i|最小
请你输出这个x的最小值

输入描述

第一行输入一个整数N
第二行输入N个正整数,每个数代表数組A的元素
第三行输入N个整数,每个数代表数字B的元素,范围为[0,2]
1<N<2*105
1<=A[i]<=10^5
0<=B[i]<=2

输出描述

输出i=1nCiAi\sum_{i=1}^n|C_i-A_i|的最小值

示例1

输入

1
2
3
2
1 10
1 0

输出

1
10

说明

1
当i=0,j=1时, i < j, B[i]=1>B[j]=0, 所以只能为C[i]=2, C[j]=1, 故|1-2|+|10-1|=10,x=10

示例2

输入

1
2
3
4
2 1 4 2
2 2 2 2

输出

1
1

说明

1
C数组可以为2 1 4 3,故x=1

示例3

1
2
3
6
100 2 3 1 5 6
0 1 2 0 2 1

4.

给出一个正整数数组A,牛牛想知道其中有多少子数组满足:里面所有数字的乘积等于里面所有数字的异或。
一个数组的子数组指数组中非空的一段连续数字

输入描述

第一行输入一个正整数n,表示数组的长度。
第二行n个空格分割的正整数AiA_i
1<=n<=1051<=n<=10^5
1<=Ai<=1091<=A_i<=10^9

输出描述

一个正整数代表答案

示例1

输入

1
2
3
1 2 1

输出

1
4

说明

1
[1] [2] [1] [1,2,1]都是满足条件的

5.

牛妹在生日这一天收到了一个长度为n的序列a1,a2,...,ana_1,a_2,...,a_n
牛妹希望从这个序列中删除一些数,使得剩下的元素的最大公约数怡好等于k。
牛妹想知道有多少种删除的方案。由于答案可能过大,请对109+710^9+7取模。

输入描述

第一行输入两个正整数n,k。
第二行输入n个正整数代表a1,a2,...,ana_1,a_2,...,a_n
1<=n,ai<=1051 <= n,a_i<=10^5

输出描述

输出一个数,代表答案对109+710^9+7取模后的值。

示例1

输入

1
2
4 2
2 3 4 8

输出

1
4

说明

1
2
3
4
第1种方案:删除3,得到[2,4,8]。
第2种方案:删除3,4,得到[2,8]。
第3种方案:删除3,8,得到[2,4]。
第4种方条:删除3,4,8,得到[2]。

示例2

输入

1
2
1 200
1000

输出

1
0

腾讯2023春招笔试
https://tech.jasonczc.cn/2023/job/tencent-2023-3-27/
作者
CZY
发布于
2023年3月27日
许可协议