Roc-xb
坚持最初的梦想,扬帆起航,乘风破浪,永不言败。
展开
-
【华为机试真题详解JAVA实现】—百钱买百鸡问题
公元五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?输出有数行,每行三个整数,分别代表鸡翁,母鸡,鸡雏的数量。现要求你打印出所有花一百元买一百只鸡的方式。输入任何一个整数,即可运行程序。原创 2023-04-13 14:28:31 · 150 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—字符串通配符
问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。匹配的字符仅由英文字母和数字0到9组成,所以?*:匹配0个或以上的字符(注:能被*和?返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。先输入一个带有通配符的字符串,再输入一个需要匹配的字符串。进阶:时间复杂度:O(n2) ,空间复杂度:O(n)数据范围:字符串长度:1≤s≤100。注意:匹配时不区分大小写。原创 2023-04-13 14:26:24 · 274 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—矩阵乘法计算量估算
计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。计算的法则为一个字符串,仅由左右括号和大写字母('A'~'Z')组成,保证括号是匹配的且输入合法!输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入要计算的法则。数据范围:矩阵个数:1≤n≤15 ,行列数:1≤rowi,coli≤100 ,A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵。进阶:时间复杂度:O(n) ,空间复杂度:O(n)原创 2023-04-12 07:02:50 · 182 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—矩阵乘法
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的。对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果。第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数。第一行包含一个正整数x,代表第一个矩阵的行数。第三行包含一个正整数z,代表第二个矩阵的列数。之后x行,每行y个整数,代表第一个矩阵的值。之后y行,每行z个整数,代表第二个矩阵的值。矩阵的大小不超过100*100。原创 2023-04-12 07:00:55 · 336 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—成绩排序
第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩。进阶:时间复杂度:O(nlogn) ,空间复杂度:O(n)按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开。注:0代表从高到低,1代表从低到高。数据范围:人数: 1≤n≤200。都按先录入排列在前的规则处理。原创 2023-04-12 06:54:51 · 207 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—24点游戏算法
给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算。此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。对于每组案例,输出一行表示能否得到24点,能输出true,不能输出false。读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。输入:7 2 1 10。原创 2023-04-12 06:55:15 · 197 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—配置文件恢复
例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unknown command。5、若输入两字串,第一关键字匹配成功,则匹配第二关键字,若无匹配,失败。4、若输入两字串,则先匹配第一关键字,如果有匹配,继续匹配第二关键字,如果唯一,匹配成功。3、若输入两字串,则先匹配第一关键字,如果有匹配,继续匹配第二关键字,如果仍不唯一,匹配失败。执行结果,每条命令输出一行。原创 2023-04-12 06:50:50 · 434 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—查找两个字符串a,b中的最长公共子串
注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。进阶:时间复杂度O(n3) ,空间复杂度:O(n)数据范围:字符串长度1≤length≤300。输出:jklmnop。原创 2023-04-12 06:51:26 · 109 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—MP3光标位置
特殊翻页:屏幕显示的是第一页(即显示第1 – 4首)时,光标在第一首歌曲上,用户按Up键后,屏幕要显示最后一页(即显示第7-10首歌),同时光标放到最后一首歌上。同样的,屏幕显示最后一页时,光标在最后一首歌曲上,用户按Down键,屏幕要显示第一页,光标挪到第一首歌上。一般翻页:屏幕显示的不是第一页时,光标在当前屏幕显示的第一首歌曲时,用户按Up键后,屏幕从当前歌曲的上一首开始显示,光标也挪到上一首歌曲。光标在最后一首歌曲时,按Down键光标挪到第一首歌曲。用户按Down键,光标挪到下一首歌曲。原创 2023-04-12 06:47:12 · 286 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—DNA序列
给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。说明:虽然CGACC的GC-Ratio也是最高,但它是从左往右找到的GC-Ratio最高的第2个子串,所以只能输出GCACG。说明:ACGT长度为2的子串有AC,CG,GT3个,其中AC和GT2个的GC-Ratio都为0.5,CG为1,故输出CG。数据范围:字符串长度满足1≤n≤1000 ,输入的字符串只包含 A/C/G/T 字母。原创 2023-04-12 06:45:08 · 108 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—查找输入整数二进制中1的个数
输入一个正整数,计算它在二进制下的1的个数。说明:5的二进制表示是101,有2个1。数据范围:1≤n≤2^31−1。计算整数二进制中1的个数。原创 2023-04-12 06:45:26 · 88 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—放苹果
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?数据范围0≤m≤10 ,1≤n≤10。原创 2023-04-12 06:43:10 · 151 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—查找组成一个偶数最接近的两个素数
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足4≤n≤1000。输入一个大于2的偶数。从小到大输出两个素数。原创 2023-04-12 06:37:13 · 66 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—找出字符串中第一个只出现一次的字符
数据范围:输入的字符串长度满足 1≤n≤1000。输出第一个只出现一次的字符,如果不存在输出-1。找出字符串中第一个只出现一次的字符。输入:asdfasdfo。原创 2023-04-11 13:45:00 · 160 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—输入n个整数,输出其中最小的k个
数据范围:1≤n≤1000 ,输入的整数满足1≤val≤10000。输入n个整数,找出其中最小的k个整数并按升序输出。从小到大输出最小的k个整数,用空格分开。第一行输入两个整数n和k。第二行输入一个整数数组。原创 2023-04-11 13:00:00 · 216 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—高精度整数加法
输入两个用字符串 str 表示的整数,求它们所表示的数之和。保证字符串只含有'0'~'9'字符。数据范围: 1≤len(str)≤10000。输出:11111111100。原创 2023-04-11 12:30:00 · 79 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—完全数计算
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。输入n,请输出n以内(含n)完全数的个数。数据范围:1≤n≤5×105。输出不超过n的完全数的个数。原创 2023-04-11 12:15:00 · 146 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—挑7
输出 1到n之间 的与 7 有关数字的个数。一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)说明:输入20,1到20之间有关的数字包括7,14,17共3个。( n 不大于 30000 )一个整数,表示1到n之间的与7有关的数字个数。数据范围:1≤n≤30000。原创 2023-04-11 12:15:00 · 174 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—表达式求值
输入字符串长度不超过 100 ,合法的字符包括 ”+, -, *, /, (, )” , ”0-9”。数据范围:运算过程中和最终结果均满足∣val∣≤231−1 ,即只进行整型运算,确保输入的表达式合法。给定一个字符串描述的算术表达式,计算出结果值。原创 2023-04-11 12:00:00 · 213 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—杨辉三角的变形
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。数据范围:1≤n≤109。原创 2023-04-11 11:45:00 · 78 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—计算字符串的编辑距离
Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家 Levenshtein 提出的,故又叫 Levenshtein Distance。把这个操作所需要的次数定义为两个字符串的距离。数据范围:给定的字符串长度满足 1≤len(str)≤1000。给定任意两个字符串,写出一个算法计算它们的编辑距离。每组用例输出一行,代表字符串的距离。原创 2023-04-11 11:30:00 · 87 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—输出单向链表中倒数第k个结点
数据范围:链表长度满足1≤n≤1000 ,链表中数据满足 0≤val≤10000。输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。正常返回倒数第k个结点指针,异常返回空指针.1 、输入链表结点个数。本题有多组样例输入。原创 2023-04-11 11:15:00 · 127 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—四则运算
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满足1≤n≤1000。输入一个表达式(用字符串表示),求这个表达式的值。输入:3+2*{1+2*[-4/(8-6)+7]}原创 2023-04-11 06:40:25 · 121 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—从单向链表中删除指定值的节点
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。输入:6 2 1 2 3 2 5 1 4 5 7 2 2。删掉节点3,返回的就是2->5->4->1。最后的链表的顺序为 2 7 3 1 5 4。最后一个参数为2,表示要删掉节点为2的值。链表为2->7->3->1->5->4。形成的链表为2->5->3->4->1。链表为2->3->1->5->4。则结果为 7 3 1 5 4。链表为2->3->1->5。4 输入要删除的结点的值。链表为2->3->1。原创 2023-04-11 11:00:00 · 450 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—截取字符串
输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出。数据范围:字符串长度满足1≤n≤1000 ,1≤k≤n。2.输入一个正整数k,代表截取的长度。1.输入待截取的字符串。原创 2023-04-10 09:45:00 · 154 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—名字的漂亮度
说明:对于样例lisi,让i的漂亮度为26,l的漂亮度为25,s的漂亮度为24,lisi的漂亮度为25+26+24+26=101.每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。给出多个字符串,计算每个字符串最大可能的“漂亮度”。数据范围:输入的名字长度满足1≤n≤10000。第一行一个整数N,接下来N行每行一个字符串。每个字符串可能的最大漂亮程度。原创 2023-04-10 09:30:00 · 202 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—Sudoku
问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足。包含已知数字的9X9盘面数组[空缺位以数字0表示]数据范围:输入一个 9*9 的矩阵。的数字均含1-9,并且不重复。完整的9X9盘面数组。原创 2023-04-10 09:15:00 · 398 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—迷宫问题
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。入口点为[0,0],既第一格是可以走的路。输入两个整数,分别表示二维数组的行数,列数。再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据保证有唯一解,不考虑有多解的情况,即迷宫只有一条通道。数据范围:2≤n,m≤10 , 输入的内容只包含 0≤val≤1。左上角到右下角的最短路径,格式如样例所示。说明:注意:不能斜着走!原创 2023-04-10 09:00:00 · 232 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—学英语
3.公式:百万以下千以上的数 X thousand X, 10亿以下百万以上的数:X million X thousand X, 10 亿以上的数:X billion X million X thousand X. 每个X分别代表三位数或两位数或一位数。4.在英式英语中百位数和十位数之间要加and,美式英语中则会省略,我们这个题目采用加上and,百分位为零的话,这道题目我们省略and。关键字提示:and,billion,million,thousand,hundred。数据范围:1≤n≤2000000。原创 2023-04-10 04:17:54 · 358 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—称砝码
现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。注:称重重量包括 0 ,数据范围:每组输入数据满足 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])说明:可以表示出0,1,2,3,4五种重量。原创 2023-04-10 10:30:00 · 179 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—统计字符
输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。统计其中英文字符,空格字符,数字字符,其他字符的个数。数据范围:输入的字符串长度满足1≤n≤1000。输入一行字符串,可以有空格。原创 2023-04-06 14:45:00 · 217 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—判断两个IP是否属于同一子网
子网掩码与IP地址结构相同,是32位二进制数,由1和0组成,且1和0分别连续,其中网络号部分全为“1”和主机号部分全为“0”。若IP地址或子网掩码格式非法则输出1,若IP1与IP2属于同一子网络输出0,若IP1与IP2不属于同一子网络输出2。若IP地址或子网掩码格式非法则输出1,若IP1与IP2属于同一子网络输出0,若IP1与IP2不属于同一子网络输出2。你可以简单的认为子网掩码是一串连续的1和一串连续的0拼接而成的32位二进制数,左边部分都是1,右边部分都是0。后缀为主机号,都由'0'组成。原创 2023-04-06 14:30:00 · 612 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—求小球落地5次后所经历的路程和第5次反弹的高度
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在第5次落地时,共经历多少米?数据范围:输入的小球初始高度满足 1≤n≤1000 ,且保证是一个整数。注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。分别输出第5次落地时,共经过多少米以及第5次反弹多高。输入起始高度,int型。原创 2023-04-06 14:15:00 · 304 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—统计每个月兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?数据范围:输入满足 1≤n≤31。输入一个int型整数表示第n个月。原创 2023-04-06 14:00:00 · 298 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—字符串加密
有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。在对信息进行加密时,信息中的每个字母被固定于顶上那行,并用下面那行的对应字母一一取代原文的字母(字母字符的大小写状态应该保留)。数据范围:1≤n≤100 ,保证输入的字符串中仅包含小写字母。请实现下述接口,通过指定的密匙和明文得到密文。原创 2023-04-06 13:45:00 · 252 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—蛇形矩阵
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入正整数N(N不大于100)输出一个N行的蛇形矩阵。原创 2023-04-06 13:15:00 · 451 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—图片整理
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。Lily使用的图片使用字符"A"到"Z"、"a"到"z"、"0"到"9"表示。一行,一个字符串,字符串中的每个字符表示一张Lily使用的图片。输入:Ihave1nose2hands10fingers。输出:0112Iaadeeefghhinnnorsssv。数据范围:每组输入的字符串长度满足1≤n≤1000。Lily的所有图片按照从小到大的顺序输出。原创 2023-04-06 13:00:00 · 257 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—整数与IP地址间的转换
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成。每段数字 相对应的二进制数。举例:一个ip地址为10.0.3.193。数据范围:保证输入的是合法的 IP 序列。1 输出转换成10进制的IP地址。2 输入10进制型的IP地址。2 输出转换后的IP地址。原创 2023-04-06 08:20:34 · 502 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—密码截取
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?输入:12HHHHA。原创 2023-04-06 04:00:00 · 111 阅读 · 0 评论 -
【华为机试真题详解JAVA实现】—单词倒排
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;1、构成单词的字符只有26个大写或小写英文字母;数据范围:字符串长度满足1≤n≤10000。2、非构成单词的字符均视为单词间隔符;输入:I am a student。输出:student a am I。对字符串中的所有单词进行倒排。输入:$bo*y gi!4、每个单词最长20个字母;输入一行,表示用来倒排的句子。输出:l r gi y bo。原创 2023-04-06 03:45:00 · 326 阅读 · 0 评论