华为OD刷题流水账(6)

统计差异值大于相似值二元组个数(100)

题目描述:

对于任意两个正整数A和B,定义它们之间的差异值和相似值:

差异值:A、B转换成二进制后,对于二进制的每一位,对应位置的bit值不相同则为1,否则为0;

相似值:A、B转换成二进制后,对于二进制的每一位,对应位置的bit值都为1则为1,否则为0;

现在有n个正整数A0 到A(n-1),问有多少对(i,j)(0 <= i < j < n),Ai和Aj的差异值大于相似值。

假设A=5,B=3;则A的二进制表示101;B的二进制表示011;则A与B的差异值二进制为110;相似值二进制为001;A与B的差异值十进制等于6,相似值十进制等于1,满足条件。

输入描述:

输入:一个n接下来n个正整数

数据范围:1<=n<=10^5, 1<=A[i]<2^30

输出描述:

输出:满足差异值大于相似值的对数

示例1:

输入:

4

4 3 5 2

输出:

4

说明:

满足条件的分别是(0,1) (0,3) (1,2) (2,3),共4对

示例2:

输入:

5

3 5 2 8 4

输出:

8

说明:

满足条件的分别是(0,1) (0,3) (0,4) (1,2) (1,3) (2,3) (2,4) (3,4)


新员工座位安排系统(100)

题目描述:

工位由序列F1,F2...Fn组成,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。

1、某一空位的友好度为左右连续老员工数之和

2、为方便新员工学习求助,优先安排友好度高的空位

给出工位序列,求所有空位中友好度的最大值。

输入描述:

第一行为工位序列:F1,F2...Fn组成,1<=n<=100000,Fi值为0、1或2。其中0代表空置,1代码有人,2代表障碍物

输出描述:

所有空位中友好度的最大值。如果没有空位,返回0。

示例1:

输入:

0 1 0

输出:

1

说明:

第1个位置和第3个位置,友好度均为1

示例2:

输入:

1 1 0 1 2 1 0

输出:

3

说明:

第3个位置友好度为3。因障碍物隔断,左边得2分,右边只能得1分。


字母组合(200)

题目描述:

每个数字对应多个字母,对应关系如下:

0:a,b,c    1:d,e,f    2:g,h,i    3:j,k,l    4:m,n,o    5:p,q,r    6:s,t   7:u,v   8:w,x  9:y, z

输入一串数字后,通过数字和字母的对应关系可以得到多个字母字符串(要求按照数字的顺序组合字母字符串);

屏蔽字符: 屏蔽字符中的所有字母不能同时在输出的字符串出现,如屏蔽字符时abc,则要求字符串中不能同时出现a,b,c,但是允许同时出现a,b;a,c;b,c等;

给定一个数字字符串和一个屏蔽字符串,输出所有可能的字符组合;

例如输入数字字符串78和屏蔽字符串ux,输出结果为uw,vw,vx;数字字符串78,可以得到如下字符串: uw,ux,vw,vx;由于ux是屏蔽字符串,因此排除ux,最终的输出时uw,vw,vx;

输入描述:

第一行输入为一串数字字符串,数字字符串中的数字不允许重复,数字字符串的长度大于0,小于等于5;

第二行输入是屏蔽字符,屏蔽字符的长度一定小于数字字符串的长度,屏蔽字符串中字符不会重复,

输出描述:

输出可能的字符串组合

注:字符串之间使用逗号隔开,最后一个字符串后携带逗号

示例1:

输入:

78

ux

输出:

uw,vw,vx,

示例2:

输入:

78

x

输出:

uw,vw,

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容