华为机试(牛客网)
CH_whale
这个作者很懒,什么都没留下…
展开
-
HJ69 矩阵乘法
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的。对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果。第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数。第一行包含一个正整数x,代表第一个矩阵的行数。第三行包含一个正整数z,代表第二个矩阵的列数。之后x行,每行y个整数,代表第一个矩阵的值。之后y行,每行z个整数,代表第二个矩阵的值。矩阵的大小不超过100*100。原创 2022-11-25 22:42:20 · 243 阅读 · 0 评论 -
HJ41 称砝码
现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。数据范围:每组输入数据满足 1≤n≤10 ,1≤mi≤2000 , 1≤xi≤10。第三行:x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])现有n种砝码,重量互不相等,分别为 m1,m2,m3…第一行:n --- 砝码的种数(范围[1,10])利用给定的砝码可以称出的不同的重量数。原创 2022-11-24 22:32:03 · 297 阅读 · 0 评论 -
HJ45 名字的漂亮度
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。给出多个字符串,计算每个字符串最大可能的“漂亮度”。数据范围:输入的名字长度满足 1≤n≤10000。第一行一个整数N,接下来N行每行一个字符串。每个字符串可能的最大漂亮程度。原创 2022-11-23 23:01:06 · 115 阅读 · 0 评论 -
HJ36 字符串加密
有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。在对信息进行加密时,信息中的每个字母被固定于顶上那行,并用下面那行的对应字母一一取代原文的字母(字母字符的大小写状态应该保留)。数据范围:1≤n≤100 ,保证输入的字符串中仅包含小写字母。请实现下述接口,通过指定的密匙和明文得到密文。原创 2022-11-10 21:48:44 · 215 阅读 · 0 评论 -
HJ38 求小球落地5次后所经历的路程和第5次反弹的高度
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在第5次落地时,共经历多少米?数据范围:输入的小球初始高度满足 1≤n≤1000 ,且保证是一个整数。综合初始高度h、重力加速度g,可以求得下落之后小球反弹的高度为。注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。分别输出第5次落地时,共经过多少米以及第5次反弹多高。输入起始高度,int型。原创 2022-11-09 12:15:22 · 175 阅读 · 0 评论 -
HJ27 查找兄弟单词
第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?先输入字典中单词的个数n,再输入n个单词作为字典单词。数据范围:1≤n≤1000 ,输入的字符串长度满足 1≤len(str)≤10 , 1≤k原创 2022-11-08 17:31:50 · 157 阅读 · 0 评论 -
HJ29 字符串加解密
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;输入的两个字符串长度满足 1≤n≤1000 ,保证输入的字符串都是只由大小写字母或者数字组成。当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;对输入的字符串进行加解密,并输出。第一行输入一串要加密的密码。第二行输入一串加过密的密码。解密方法为加密的逆过程。第一行输出加密后的字符。第二行输出解密后的字符。原创 2022-11-02 13:10:34 · 257 阅读 · 0 评论 -
HJ20 密码验证合格程序
密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)数据范围:输入的字符串长度满足 1≤n≤100。原创 2022-10-30 21:40:54 · 174 阅读 · 0 评论 -
HJ26 字符串排序
编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y数据范围:输入的字符串长度满足 1≤n≤1000。原创 2022-10-29 23:09:41 · 128 阅读 · 0 评论 -
HJ17 坐标移动
开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;$%$;YAD;等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)+ x = 无效。原创 2022-10-25 16:58:17 · 221 阅读 · 0 评论 -
HJ52 计算字符串的编辑距离
Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括。编辑距离的算法是首先由俄国科学家 Levenshtein 提出的,故又叫 Levenshtein Distance。例如:字符串A: abcdefg字符串B: abcdef通过增加或是删掉字符 ”g” 的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义为两个字符串的距离。要求:给定任意两个字符串,写出一个算法计算它们的编辑距离。原创 2022-10-23 20:38:12 · 208 阅读 · 0 评论 -
HJ75 公共子串计算
给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。数据范围:字符串长度:1≤s≤150进阶:时间复杂度:O(n^3) ,空间复杂度:O(n)原创 2022-10-21 13:41:26 · 197 阅读 · 0 评论 -
HJ32 密码截取
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?原创 2022-10-20 21:48:21 · 148 阅读 · 0 评论 -
HJ24 合唱队
N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。设KK位同学从左到右依次编号为 1,2…,K ,他们的身高分别为T1,T2,…,TK ,若存在i(1≤i≤K) 使得T1原创 2022-10-20 10:45:26 · 140 阅读 · 0 评论 -
HJ16 购物单
王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:如果要买归类为附件的物品,必须先买该附件所属的主件,且每件物品只能购买一次。每个主件可以有 0 个、 1 个或 2 个附件。附件不再有从属于自己的附件。王强查到了每件物品的价格(都是 10 元的整数倍),而他只有 N 元的预算。除此之外,他给每件物品规定了一个重要度,用整数 15 表示。他希望在花费不超过 N 元的前提下,使自己的满意度达到最大。原创 2022-10-18 20:47:09 · 152 阅读 · 0 评论 -
HJ102 字符统计
输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。数据范围:字符串长度满足 1≤len(str)≤1000。原创 2022-10-17 15:55:50 · 229 阅读 · 0 评论 -
HJ83 二维数组操作
有一个m*n大小的数据表,你会依次进行以下5种操作:1.输入m和n,初始化m*n大小的表格。2.输入x1、y1、x2、y2,交换坐标在(x1,y1)和(x2,y2)的两个数。3.输入x,在第x行上方添加一行。4.输入y,在第y列左边添加一列。5.输入x、y,查找坐标为(x,y)的单元格的值。请编写程序,判断对表格的各种操作是否合法。详细要求:1.数据表的最大规格为9行*9列,对表格进行操作时遇到超出规格应该返回错误。原创 2022-10-16 13:59:17 · 335 阅读 · 0 评论 -
HJ60 查找组成一个偶数最接近的两个素数
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足 4≤n≤1000。原创 2022-10-16 12:31:58 · 181 阅读 · 0 评论 -
HJ51 输出单向链表中倒数第k个结点
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。正常返回倒数第k个结点指针,异常返回空指针。数据范围:链表长度满足 1≤n≤1000 , k≤n ,链表中数据满足 0≤val≤10000本题有多组样例输入。原创 2022-10-15 19:28:02 · 446 阅读 · 1 评论 -
HJ86 求最大连续bit数
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1数据范围:数据组数:1\le t\le 5\1≤t≤5 ,1\le n\le 500000\1≤n≤500000 进阶:时间复杂度:O(logn)\O(logn) ,空间复杂度:O(1)\O(1) 输入一个int类型数字输出转成二进制之后连续1的个数输入:输出:说明:200的二进制表示是11001000,最多有2个连续的1。 AC Code原创 2022-10-14 11:44:03 · 114 阅读 · 0 评论 -
HJ37 统计每个月兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。例子假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?数据范围输入满足1≤n≤31。...原创 2022-07-22 18:51:29 · 119 阅读 · 0 评论 -
HJ35 蛇形矩阵
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。例如,当输入5时,应该输出的三角形为25914481371211。原创 2022-07-22 16:24:47 · 189 阅读 · 0 评论 -
HJ31 单词倒排
对字符串中的所有单词进行倒排。说明1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;数据范围字符串长度满足1≤n≤10000。...原创 2022-07-21 17:22:06 · 121 阅读 · 0 评论