
华为机试真题-JS
文章平均质量分 58
华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100分,第三道为中等或困难题,分值为200分。总分为400分,150分钟考试时间。之前通过为150分,现在好像分数提高了,大家不要太大意,一定要多刷题,争取拿高分,毕竟分数越高评级越高,工资也就越高。OD的工资待遇还是很可观的15K-30K
forest_long
这个作者很懒,什么都没留下…
展开
-
【华为机试真题JavaScript】非严格递增连续数字序列
输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列长度。比如:12234属于非严格递增数字序列。说明:2234为最长的非严格递增连续数字序列,所以长度为4。原创 2022-09-26 03:17:19 · 2021 阅读 · 0 评论 -
【华为机试真题JavaScript】字符串分割
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;大小写字母的数量相等时,不做转换。原创 2022-09-26 03:17:10 · 1251 阅读 · 0 评论 -
【华为机试真题JavaScript】分班
两个班的小朋友混在了一队,每个小朋友都知道自己和前面的人是不是同班(同班Y,不同班N)要求小朋友编号为整数,不会小于0或大于999。(小朋友队列及自己是否和前一位同班)原创 2022-09-26 03:16:57 · 889 阅读 · 0 评论 -
【华为机试真题JavaScript】查找组成一个偶数最接近的两个素数
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足 4 \le n \le 1000 \4≤n≤1000。任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足4 \le n \le 1000 \4≤n≤1000原创 2022-10-31 10:54:43 · 259 阅读 · 0 评论 -
【华为机试真题JavaScript】放苹果
数据范围:0 \le m \le 10 \0≤m≤10 ,1 \le n \le 10 \1≤n≤10。注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?原创 2022-10-31 10:49:32 · 250 阅读 · 0 评论 -
【华为机试真题JavaScript】DNA序列
一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。数据范围:字符串长度满足 1 \le n \le 1000 \1≤n≤1000 ,输入的字符串只包含 A/C/G/T 字母。原创 2022-10-31 10:47:20 · 193 阅读 · 0 评论 -
【华为机试真题JavaScript】MP3光标位置
MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下:歌曲总数原创 2022-10-29 22:10:45 · 235 阅读 · 0 评论 -
【华为机试真题JavaScript】查找两个字符串a,b中的最长公共子串
注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!数据范围:字符串长度1\le length \le300 \1≤length≤300。查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。进阶:时间复杂度:O(n^3)\O(n3) ,空间复杂度:O(n)\O(n)原创 2022-10-29 22:01:28 · 269 阅读 · 0 评论 -
【华为机试真题JavaScript】配置文件恢复
为了简化输入,方便用户,以“最短唯一匹配原则”匹配(注:需从首字母开始进行匹配):1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;2、若只输入一字串,但匹配命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unknown command。原创 2022-10-29 21:58:46 · 220 阅读 · 0 评论 -
【华为机试真题JavaScript】24点游戏算法
给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算。此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。对于每组案例,输出一行表示能否得到24点,能输出true,不能输出false。读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。原创 2022-10-29 21:56:27 · 241 阅读 · 0 评论 -
【华为机试真题JavaScript】成绩排序
第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩。进阶:时间复杂度:O(nlogn)\O(nlogn) ,空间复杂度:O(n)\O(n)数据范围:人数:1\le n \le 200\1≤n≤200。按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开。注:0代表从高到低,1代表从低到高。都按先录入排列在前的规则处理。原创 2022-10-29 21:53:18 · 247 阅读 · 0 评论 -
【华为机试真题JavaScript】矩阵乘法
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的。对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果。第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数。第一行包含一个正整数x,代表第一个矩阵的行数。第三行包含一个正整数z,代表第二个矩阵的列数。之后x行,每行y个整数,代表第一个矩阵的值。之后y行,每行z个整数,代表第二个矩阵的值。矩阵的大小不超过100*100。原创 2022-10-27 00:05:12 · 404 阅读 · 0 评论 -
【华为机试真题JavaScript】矩阵乘法计算量估算
矩阵乘法的运算量与矩阵乘法的顺序强相关。例如:A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。编写程序计算不同的计算顺序需要进行的乘法次数。数据范围:矩阵个数:1\le n\le 15 \1≤n≤15 ,行列数:1\le row_i,col_i\le 100\1≤rowi,coli≤100 ,。原创 2022-10-27 00:02:06 · 287 阅读 · 0 评论 -
【华为机试真题JavaScript】公共子串计算
进阶:时间复杂度:O(n^3)\O(n3) ,空间复杂度:O(n)\O(n)注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。数据范围:字符串长度:1\le s\le 150\1≤s≤150。输出一个整数,代表最大公共子串的长度。输入两个只包含小写字母的字符串。原创 2022-10-26 23:59:16 · 358 阅读 · 0 评论 -
【华为机试真题JavaScript】将真分数分解为埃及分数
分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!如有多个解,请输出任意一个。原创 2022-10-26 23:57:25 · 312 阅读 · 0 评论 -
【华为机试真题JavaScript】购物单
满意度是指所购买的每件物品的价格与重要度的乘积的总和,假设设第ii件物品的价格为v[i]v[i],重要度为w[i]w[i],共选中了kk件物品,编号依次为j_1,j_2,...,j_kj1,j2,...,jk,则满意度为:v[j_1]*w[j_1]+v[j_2]*w[j_2]+ …如果 q=0 ,表示该物品为主件,如果 q>0 ,表示该物品为附件, q 是所属主件的编号)从第 2 行到第 m+1 行,第 j 行给出了编号为 j-1 的物品的基本数据,每行有 3 个非负整数 v p q。原创 2022-10-26 23:53:28 · 447 阅读 · 0 评论 -
【华为机试真题JavaScript】简单错误记录
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;3、 输入的文件可能带路径,记录文件名称不能带路径。每组只包含一个测试用例。一个测试用例包含一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。将所有的记录统计并将结果输出,格式:文件名代码行数数目,一个空格隔开,如:原创 2022-10-26 23:50:52 · 626 阅读 · 0 评论 -
【华为机试真题JavaScript】合唱队
T_KT1,T2,…,TK ,若存在i(1\leq i\leq K)i(1≤i≤K) 使得T_1原创 2022-10-26 23:48:35 · 214 阅读 · 0 评论 -
【华为机试真题JavaScript】从单向链表中删除指定值的节点
数据范围:链表长度满足 1 \le n \le 1000 \1≤n≤1000 ,节点中的值满足 0 \le val \le 10000 \0≤val≤10000。输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。删掉节点3,返回的就是2->5->4->1。链表为2->7->3->1->5->4。形成的链表为2->5->3->4->1。链表为2->3->1->5->4。链表为2->3->1->5。4 输入要删除的结点的值。链表为2->3->1。原创 2022-10-26 23:46:11 · 240 阅读 · 0 评论 -
【华为机试真题JavaScript】完全数计算
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。输入n,请输出n以内(含n)完全数的个数。数据范围: 1 \le n \le 5 \times 10^{5} \1≤n≤5×105。原创 2022-10-26 23:43:17 · 211 阅读 · 0 评论 -
【华为机试真题JavaScript】高精度整数加法
输入两个用字符串 str 表示的整数,求它们所表示的数之和。数据范围: 1 \le len(str) \le 10000 \1≤len(str)≤10000。原创 2022-10-26 23:41:13 · 289 阅读 · 0 评论 -
【华为机试真题JavaScript】字符串分隔
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。连续输入字符串(每个字符串长度小于等于100)依次输出所有分割后的长度为8的新字符串。原创 2022-10-26 23:34:39 · 280 阅读 · 0 评论 -
【华为机试真题JavaScript】求解立方根
计算一个数字的立方根,不使用库函数。输入参数的立方根。保留一位小数。输入:216输出:6.0原创 2022-10-26 22:09:55 · 544 阅读 · 0 评论 -
【华为机试真题JavaScript】查找两个字符串a,b中的最长公共子串
a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。原创 2022-10-25 09:08:14 · 249 阅读 · 0 评论 -
【华为机试真题JavaScript】24点游戏算法
输入4个int整数(数字允许重复,但每个数字仅允许使用一次,无异常数字)给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利。返回能否得到24点,能输出true,不能输出false。原创 2022-10-24 23:38:55 · 356 阅读 · 0 评论 -
【华为机试真题JavaScript】成绩排序
接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。第一行为n (0 < n < 20),表示班里的学生数目;原创 2022-10-24 23:36:43 · 242 阅读 · 0 评论 -
【华为机试真题JavaScript】矩阵乘法计算量估算
计算ABC有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。数据范围:数据组数:1原创 2022-10-24 23:32:05 · 261 阅读 · 0 评论 -
【华为机试真题JavaScript】将真分数分解为埃及分数
分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!第二个样例直接输出1/2也是可以的。输入一个真分数,String型。如有多个解,请输出任意一个。请注意本题含有多组样例输入!输出分解后的string。原创 2022-10-24 23:27:52 · 212 阅读 · 0 评论 -
【华为机试真题JavaScript】素数伴侣
若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。原创 2022-10-24 23:25:33 · 308 阅读 · 0 评论 -
【华为机试真题JavaScript】称砝码
每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000])第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,6])现有一组砝码,重量互不相等,分别为m1,m2,m3…第一行:n --- 砝码数(范围[1,10])利用给定的砝码可以称出的不同的重量数。输入包含多组测试数据。原创 2022-10-24 23:22:06 · 270 阅读 · 0 评论 -
【华为机试真题JavaScript】简单错误记录
1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是”相同“的错误记录。4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准。开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;3、 输入的文件可能带路径,记录文件名称不能带路径。原创 2022-10-24 23:18:10 · 211 阅读 · 0 评论 -
【华为机试真题JavaScript】高精度整数加法
在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-2^31~2^31-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:让字符串 num1="9876543210",字符串 num2="1234567890",结果保存在字符串 result = "11111111100"。原创 2022-10-24 23:15:24 · 237 阅读 · 0 评论 -
【华为机试真题JavaScript】计算字符串距离
比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作。我们把这个操作所需要的次数定义为两个字符串的距离。接下来共n行,每行两个字符串,用空格隔开。表示要计算距离的两个字符串。删除一个字符(如把“traveling”变为“travelng”)针对每一组测试数据输出一个整数,值为两个字符串的距离。给定任意两个字符串,写出一个算法来计算出他们的距离。修改一个字符(如把“a”替换为“b”)原创 2022-10-24 23:12:27 · 238 阅读 · 0 评论 -
【华为机试真题JavaScript】杨辉三角的变形
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。数据范围: 1 \le n \le 10^9 \1≤n≤109。原创 2022-10-24 23:09:03 · 236 阅读 · 0 评论 -
【华为机试真题JavaScript】火车进站
给定一个正整数N代表火车数量,0原创 2022-10-21 00:48:45 · 363 阅读 · 0 评论 -
【华为机试真题JavaScript】数据分类
对一个数据a进行分类,分类方法是,此数据a(4个字节大小)的4个字节相加对一个给定值b取模,如果得到的结果小于一个给定的值c则数据a为有效类型,其类型为取模的值。输入12个数据用空格分割,第一个数据为c,第二个数据为b,剩余10个数据为需要分类的数据。按分类方法计算:(0x01+0x01+0x01+0x03)%3=0。请找到有效类型中包含数据最多的类型,并输出该类型含有多少个数据。所以如果c等于2,则此a就是有效类型,其类型为1。请找到有效类型中包含数据最多的类型,第一个数据为c,第二个数据为b,原创 2022-10-21 00:44:14 · 312 阅读 · 0 评论 -
【华为机试真题JavaScript】DNA序列
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入一个int型整数。原创 2022-10-20 00:25:50 · 576 阅读 · 0 评论 -
【华为机试真题JavaScript】高精度整数加法
输入两个用字符串 str 表示的整数,求它们所表示的数之和。保证字符串只含有’0’~'9’字符。数据范围:1≤len(str)≤10000。原创 2022-10-20 00:25:20 · 336 阅读 · 0 评论 -
【华为机试真题JavaScript】输入n个整数,输出其中最小的k个
数据范围:1≤n≤1000 ,输入的整数满足 1≤val≤10000。输入n个整数,找出其中最小的k个整数并按升序输出。从小到大输出最小的k个整数,用空格分开。第一行输入两个整数n和k。第二行输入一个整数数组。原创 2022-10-20 00:24:48 · 569 阅读 · 0 评论 -
【华为机试真题JavaScript】从单向链表中删除指定值的节点
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。数据范围:链表长度满足 1≤n≤1000 ,节点中的值满足 0≤val≤10000。最后的链表的顺序为 2 7 3 1 5 4。最后一个参数为2,表示要删掉节点为2的值。输出删除结点后的序列,每个数后都要加空格。链表为2->7->3->1->5->4。链表为2->3->1->5->4。则结果为 7 3 1 5 4。链表为2->3->1->5。4 输入要删除的结点的值。链表为2->3->1。原创 2022-10-20 00:24:07 · 320 阅读 · 0 评论