
机试编程题
机试前必备
青云 --小凡
C++从入门到入土
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HJ75 公共子串计算
描述给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。数据范围:字符串长度:1\le s\le 150\1≤s≤150进阶:时间复杂度:O(n^3)\O(n3),空间复杂度:O(n)\O(n)输入描述:输入两个只包含小写字母的字符串输出描述:输出一个整数,代表最大公共子串的长度示例1输入:asdfas werasdfaswer复制输出:6题解:在较短的串...原创 2022-05-04 19:43:16 · 226 阅读 · 0 评论 -
HJ67 24点游戏算法
描述给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。输入描述:读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。输出描述:对于每组案例,输出一行表示能否得到24点,能输出true,不能输出fa转载 2022-05-04 13:27:00 · 598 阅读 · 0 评论 -
HJ90 合法IP
描述IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。数据范围:数据组数:1\le t\le 18\1≤t≤18进阶:时间复杂度:O(n)\O(n),空间复杂度:O(n)\O(n)输入描述:输入一个ip地址,保证不包含空格输出描述..原创 2022-05-04 12:17:56 · 589 阅读 · 0 评论 -
HJ107 求解立方根
描述计算一个浮点数的立方根,不使用库函数。保留一位小数。数据范围:|val| \le 20 \∣val∣≤20输入描述:待求解参数,为double类型(一个实数)输出描述:输出参数的立方根。保留一位小数。示例1输入:19.9输出:2.7示例2输入:2.7输出:1.4#include <iostream>double cubeRoot(double num){ double copynum = num;原创 2022-05-03 22:58:31 · 346 阅读 · 0 评论 -
HJ103 Redraiment的走法
描述Redraiment是走梅花桩的高手。Redraiment可以选择任意一个起点,从前到后,但只能从低处往高处的桩子走。他希望走的步数最多,你能替Redraiment研究他最多走的步数吗?数据范围:每组数据长度满足 1 \le n \le 200 \1≤n≤200 , 数据大小满足 1 \le val \le 350 \1≤val≤350输入描述:数据共2行,第1行先输入数组的个数,第2行再输入梅花桩的高度输出描述:输出一个结果示例1输入:6 2 5 1 5 4 5原创 2022-05-03 22:09:29 · 145 阅读 · 0 评论 -
HJ92 在字符串中找出连续最长的数字串
描述输入一个字符串,返回其最长的数字子串,以及其长度。若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置)本题含有多组样例输入。数据范围:字符串长度1 \le n \le 200 \1≤n≤200, 保证每组输入都至少含有一个数字输入描述:输入一个字符串。1<=len(字符串)<=200输出描述:输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不要输出空格)。示例1输入:abcd123...原创 2022-05-03 21:22:58 · 221 阅读 · 0 评论 -
HJ82 将真分数分解为埃及分数
描述分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11=1/2+1/5+1/55+1/110。注:真分数指分子小于分母的分数,分子和分母有可能gcd不为1!如有多个解,请输出任意一个。输入描述:输入一个真分数,String型输出描述:输出分解后的string示例1输入:8/112/4复制输出:1/2+1/5+1/55+1/1101/3+1/6复制说明:第二个样例直..转载 2022-05-03 17:32:33 · 323 阅读 · 0 评论 -
HJ77 火车进站
描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车站的列车中,只有后进站的出站了,先进站的才能出站。要求输出所有火车出站的方案,以字典序排序输出。数据范围:1\le n\le 10\1≤n≤10进阶:时间复杂度:O(n!)\O(n!),空间复杂度:O(n)\O(n)输入描述:第一行输入一个正整数N(0 < N <= 10),第二行包括N个正整数,范围为1...转载 2022-05-03 13:39:30 · 788 阅读 · 0 评论 -
HJ74 参数解析
描述在命令行输入如下命令:xcopy/sc:\\ d:\\e,各个参数如下:参数1:命令字xcopy参数2:字符串/s参数3:字符串c:\\参数4:字符串d:\\e请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则:1.参数分隔符为空格2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy/s "C:\\programfiles" "d:\"时,参数仍然是4个,第3个参数应该是字符串C:\\progra...原创 2022-05-03 12:29:42 · 148 阅读 · 0 评论 -
HJ69 矩阵乘法
描述如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的矩阵的大小不超过100*100输入描述:第一行包含一个正整数x,代表第一个矩阵的行数第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数第三行包含一个正整数z,代表第二个矩阵的列数之后x行,每行y个整数,代表第一个矩阵的值之后y行,每行z个整数,代表第二个矩阵的值输出描述:对于每组输入数据,输出x行,每行z个整数,代表两..原创 2022-05-02 16:43:35 · 272 阅读 · 0 评论 -
HJ66 配置文件恢复
描述有6条配置命令,它们执行的结果分别是:命令 执行 reset resetwhat resetboard boardfault boardadd wheretoadd boarddelete noboardatall rebootbackplane impossible backplaneabort installfirst hehe unknowncommand 注意:he...原创 2022-05-02 12:03:25 · 1077 阅读 · 0 评论 -
HJ65 查找两个字符串a,b中的最长公共子串
描述查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!数据范围:字符串长度1\le length \le300 \1≤length≤300进阶:时间复杂度:O(n^3)\O(n3),空间复杂度:O(n)\O(n)输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入:abcdefghijklmnopabcsafjklmn...原创 2022-05-01 22:30:04 · 577 阅读 · 0 评论 -
HJ64 MP3光标位置
描述MP3Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下: 歌曲总数<=4的时候,不需要翻页,只是挪动光标位置。 光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲;光标在最后一首歌曲时,按Down键光标挪到第一首歌曲。正在上传…重新上传取消其他情况下用户按Up键,光标挪到上一首歌曲;用户按.原创 2022-05-01 19:39:21 · 181 阅读 · 0 评论 -
HJ63 DNA序列
描述一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。DNA序列为 ACGT 的子串有: ACG , CG , CGT原创 2022-05-01 16:24:27 · 441 阅读 · 0 评论 -
HJ59 找出字符串中第一个只出现一次的字符
描述找出字符串中第一个只出现一次的字符数据范围:输入的字符串长度满足 1 \le n \le 1000 \1≤n≤1000输入描述:输入一个非空字符串输出描述:输出第一个只出现一次的字符,如果不存在输出-1示例1输入:asdfasdfo复制输出:#include <algorithm>#include <iostream>void onlyOnceLetter(std::string str){ for原创 2022-05-01 12:08:34 · 353 阅读 · 0 评论 -
HJ57 高精度整数加法
描述输入两个用字符串 str 表示的整数,求它们所表示的数之和。数据范围:1 \le len(str) \le 10000 \1≤len(str)≤10000输入描述:输入两个字符串。保证字符串只含有'0'~'9'字符输出描述:输出求和后的结果示例1输入:98765432101234567890复制输出:11111111100#include <iostream>#include <vector>#include..原创 2022-05-01 10:00:01 · 485 阅读 · 0 评论 -
HJ55 挑7
描述输出 1到n之间 的与 7 有关数字的个数。一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)数据范围:1 \le n \le 30000 \1≤n≤30000输入描述:一个正整数 n 。( n 不大于 30000 )输出描述:一个整数,表示1到n之间的与7有关的数字个数。示例1输入:20复制输出:3复制说明:输入20,1到20之间有关的数字包括7..原创 2022-05-01 08:42:17 · 294 阅读 · 0 评论 -
HJ50 四则运算
描述输入一个表达式(用字符串表示),求这个表达式的值。保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’,‘*’,‘/’,‘(’,‘)’,‘[’,‘]’,‘{’,‘}’。且表达式一定合法。数据范围:表达式计算结果和过程中满足|val| \le 1000 \∣val∣≤1000,字符串长度满足1 \le n \le 1000 \1≤n≤1000输入描述:输入一个算术表达式输出描述:得到计算结果示例1输入:3+2*{1+2*[-4/(8...原创 2022-05-01 07:11:07 · 203 阅读 · 0 评论 -
HJ43 迷宫问题
描述定义一个二维数组 N*M ,如 5×5 数组下所示:intmaze[5][5]={0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。入口点为[0,0],既第一格是可以走的路。数据范围:2 \le n,m \le 10 \2≤n,m≤10, ...转载 2022-04-30 14:20:57 · 233 阅读 · 0 评论 -
HJ45 名字的漂亮度
描述给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。给出多个字符串,计算每个字符串最大可能的“漂亮度”。本题含有多组数据。数据范围:输入的名字长度满足1 \le n \le 10000 \1≤n≤10000输入描述:第一行一个整数N,接下来N行每行一个字符串输出描述:每个字符串可能的最大漂亮程度示例1..原创 2022-04-29 22:29:48 · 426 阅读 · 0 评论 -
HJ41 称砝码
描述现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ;每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。注:称重重量包括 0数据范围:每组输入数据满足1 \le n \le 10 \1≤n≤10,1 \le m_i \le 2000 \1≤mi≤2000,1 \le x_i \le 10 \1≤xi≤10输入描述:对于每组测试数据:第一行:n --- 砝码的种数(范围...原创 2022-04-29 15:19:17 · 398 阅读 · 0 评论 -
HJ38 求小球落地5次后所经历的路程和第5次反弹的高度
描述假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经历多少米?第5次反弹多高?数据范围:输入的小球初始高度满足1 \le n \le 1000 \1≤n≤1000,且保证是一个整数输入描述:输入起始高度,int型输出描述:分别输出第5次落地时,共经过多少米以及第5次反弹多高。注意:你可以认为你输出保留六位或以上小数的结果可以通过此题。示例1输入:1复制输出:2.8750.03125#inclu...原创 2022-04-29 11:24:11 · 176 阅读 · 0 评论 -
HJ36 字符串加密
描述有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。如下所示:ABCDEFGHIJKLMNOPQRSTUVWXYZTRAILBZESCDFGHJKMNOPQUVWXY (实际需建立...原创 2022-04-28 22:20:21 · 314 阅读 · 0 评论 -
HJ33 整数与IP地址间的转换
描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字相对应的二进制数100000101000000000030000001119311000001组合起来即为:000010100000...原创 2022-04-28 22:17:26 · 429 阅读 · 0 评论 -
HJ32 密码截取
描述Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗.原创 2022-04-28 15:29:42 · 157 阅读 · 0 评论 -
HJ29 字符串加解密
描述对输入的字符串进行加解密,并输出。加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。解密方法为加密的逆过程。数据范围:输入的两个字符串长度满足 1 \le n \le 1000 \1≤n≤1000 ,保证输入的字符串都是只由大小写字母或者数字组成输入描述:第一行输入一串要加密的密码第二行输入一串加过密的密码输出原创 2022-04-28 11:44:23 · 221 阅读 · 0 评论 -
HJ27 查找兄弟单词
描述定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?注意:字典中可能有重复单词。数据范围:1 \le n \le 1000 \1≤n≤1000 ,输入的字符串长度满足 1 \le len(str) \l原创 2022-04-28 10:06:55 · 806 阅读 · 0 评论 -
HJ26 字符串排序
描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y数据范围:输入的字符串长度满足1 \le n \le 1000 \1≤n≤1000输入描述:输入字符串输出描述:输出字符串...翻译 2022-04-27 21:49:05 · 379 阅读 · 0 评论 -
HJ24 合唱队
描述N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。设KK位同学从左到右依次编号为 1,2…,K ,他们的身高分别为T_1,T_2,…,T_KT1,T2,…,TK,若存在i(1\leq i\leq K)i(1≤i≤K)使得T_1<T_2<......<T_{i-1}<T_iT1<T2<......<Ti−1<Ti且T_i>T_{i+1}>......>T_KTi>Ti+...原创 2022-04-27 16:12:26 · 164 阅读 · 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)+A10...原创 2022-04-27 11:34:35 · 147 阅读 · 0 评论 -
华为机试题——HJ20 密码验证合格程序
描述密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有长度大于2的不含公共元素的子串重复 (注:其他符号不含空格或换行)数据范围:输入的字符串长度满足1 \le n \le 100 \1≤n≤100输入描述:一组字符串。输出描述:如果符合要求输出:OK,否则输出NG示例1输入:021Abc9000021Abc9Abc1021ABC9000021$bc9000复制输出:OKNGNGOK..原创 2022-04-27 11:33:47 · 278 阅读 · 0 评论 -
华为机试题——HJ16 购物单
描述王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件,且每件物品只能购买一次。每个主件可以有0个、1个或2个附件。附件不再有从属于自己的附件。王强查到了每件物品的价格(都是10元的整数倍),而他只有 N 元的预算。除此之外,他给每件物品...翻译 2022-04-26 18:50:40 · 328 阅读 · 0 评论 -
华为机试题——HJ108 求最小公倍数
描述正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。数据范围:1 \le a,b \le 100000 \1≤a,b≤100000输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例1输入:5 7复制输出:35复制示例2输入:2 4复制输出:4#include <iostream>#include <algorithm>in原创 2022-04-26 14:16:00 · 315 阅读 · 0 评论 -
华为机试题——HJ106 字符逆序
描述将一个字符串str的内容颠倒过来,并输出。数据范围:1 \le len(str) \le 10000\1≤len(str)≤10000输入描述:输入一个字符串,可以有空格输出描述:输出逆序的字符串示例1输入:I am a student复制输出:tneduts a ma I复制示例2输入:nowcoder复制输出:redocwon#include <iostream>#include <algorithm>原创 2022-04-26 13:56:20 · 343 阅读 · 0 评论 -
华为机试题——HJ102 字符统计
描述输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。数据范围:字符串长度满足1 \le len(str) \le 1000 \1≤len(str)≤1000输入描述:一个只包含小写英文字母和数字的字符串。输出描述:一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。示例1输入:aaddccdc复制输出:cda复制说明:..原创 2022-04-25 22:46:47 · 581 阅读 · 0 评论 -
华为机试题——HJ100 等差数列
描述等差数列2,5,8,11,14。。。。(从 2 开始的 3 为公差的等差数列)输出求等差数列前n项和数据范围:1 \le n \le 1000 \1≤n≤1000输入描述:输入一个正整数n。输出描述:输出一个相加后的整数。示例1输入:2复制输出:7复制说明:2+5=7示例2输入:275复制输出:113575复制说明:2+5+...+821+824=113575...原创 2022-04-25 20:49:17 · 188 阅读 · 0 评论 -
华为机试题——HJ99 自守数
描述自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 =625,76^2 =5776,9376^2 =87909376。请求出n(包括n)以内的自守数的个数数据范围: 1 \le n \le 10000 \1≤n≤10000输入描述:int型整数输出描述:n以内自守数的数量。示例1输入:6复制输出:4复制说明:有0,1,5,6这四个自守数 示例2输入:1复制输出:2复制说明:有0, 1这两个自...原创 2022-04-25 20:35:12 · 480 阅读 · 0 评论 -
华为机试题——HJ97 记负均正
描述首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。数据范围: 1 \le n\ \le 2000 \1≤n ≤2000 ,输入的整数都满足 |val| \le 1000 \∣val∣≤1000输入描述:首先输入一个正整数n,然后输入n个整数。输出描述:输出负数的个数,和所有正整数的平均值。示例1输入:11 1 2 3 4 5原创 2022-04-25 19:59:52 · 126 阅读 · 0 评论 -
华为机试题——HJ96 表示数字
描述将一个字符中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。数据范围:字符串长度满足1 \le n \le 100 \1≤n≤100输入描述:输入一个字符串输出描述:字符中所有出现的数字前后加上符号“*”,其他字符保持不变示例1输入:Jkdi234klowe90a3复制输出:Jkdi*234*klowe*90*a*3*#include <iostream>#include <string.h&g..原创 2022-04-25 19:14:12 · 312 阅读 · 0 评论 -
华为机试题——HJ94 记票统计
描述请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。(注:不合法的投票指的是投票的名字不存在n个候选人的名字中!!)数据范围:每组输入中候选人数量满足1 \le n \le 100 \1≤n≤100,总票数量满足1 \le n \le 100 \1≤n≤100输入描述:第一行输入候选人的人数n,第二行输入n个候选人的名字(均为大写字母的字符串),第三行输入投票人的人数,第四行输入投票。输出描述:按照输入...原创 2022-04-25 15:58:20 · 228 阅读 · 0 评论