华为机试
文章平均质量分 51
oLengNuanZiZhi12
这个作者很懒,什么都没留下…
展开
-
华为机试之查找兄弟单词
查找兄弟单词1>题目描述2>解法一2.1、代码实现3>解法二3.1、代码实现1>题目描述题目描述:定义一个单词的“兄弟单词”为:交换该单词字母顺序,而不添加、删除、修改原有的字母就能生成的单词。兄弟单词要求和原来的单词不同。例如:ab和ba是兄弟单词。ab和ab则不是兄弟单词。现在给定你n个单词,另外再给你一个单词str,让你寻找str的兄弟单词里,字典序第k大的那个单词是什么?注意:字典中可能有重复单词。本题含有多组输入数据。输入描述:先输入单词的个数n,原创 2021-03-03 10:29:55 · 200 阅读 · 0 评论 -
华为机试之字符串排序
字符串排序1>题目描述2>解法一2.1、代码实现3>解法二3.1、代码实现4>总结1>题目描述题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y注意原创 2021-03-03 10:29:35 · 148 阅读 · 0 评论 -
华为机试之数据分类处理
数据分类处理1>题目描述2>解法3>反思1>题目描述题目描述:信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。请注意本题有多组输入用例。输入描述:一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限输出描述: 从R依次中取原创 2021-03-11 09:13:03 · 257 阅读 · 0 评论 -
华为机试之删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符1>题目描述2>解法1>题目描述题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。注意每个输入文件有多组输入,即多个字符串用回车隔开输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。2>解法1>利用Map元素键无法重复的原理,原创 2021-03-02 15:12:12 · 116 阅读 · 0 评论 -
华为机试之汽水瓶
汽水瓶1>题目描述2>解法1>题目描述题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个原创 2021-03-02 15:00:58 · 189 阅读 · 0 评论 -
华为机试之简单密码
简单密码1>题目描述2>解法1>题目描述密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母: 1–1, abc–2, def–3, g原创 2021-03-02 14:54:27 · 422 阅读 · 0 评论 -
华为机试之密码验证合格程序
密码验证合格程序1>题目描述2>解法2.1、关于如何匹配字符串2.2、代码实现1>题目描述题目描述:密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度大于2的子串重复输入描述:一组或多组长度超过2的子符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG2>解法简单的说密码需要经过3重验证1>长度超过8,这个实现很简单,利用字符串length()方法即可2>包原创 2021-03-02 14:44:22 · 227 阅读 · 0 评论 -
华为机试之简单错误记录
简单错误记录1>题目描述2>解法1>题目描述题目描述:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是”相同“的错误记录。2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;3、 输入的文件可能带路径,记录文件名称不能带路径。4原创 2021-03-02 14:20:25 · 165 阅读 · 0 评论 -
华为机试之坐标移动
坐标移动1>题目描述2>解法3>常用的正则表达式1>题目描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如: A10;S20;W10;D30;X;原创 2021-03-02 14:09:29 · 157 阅读 · 0 评论 -
华为机试之求int型数据在内存中存储时1的个数
求int型数据在内存中存储时1的个数1>题目描述2>解法一1>题目描述题目描述:输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)输出描述:这个数转换成2进制后,输出1的个数2>解法一十进制转二进制算法:不停地让num/2并取余,最后把余数倒叙就是对应的二进制数对与这道题我们只需要在余数为1是记录即可import java.util.*;public class Main原创 2021-03-02 13:47:13 · 102 阅读 · 0 评论 -
华为机试之字符串排序
字符串排序1>题目描述2>解法一3>解法二4>解法三1>题目描述题目描述:给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。2>解法一调用工具类Arrays的sort方法,但我感觉这样不太好,这个解法投机取巧了import java.util.*;原创 2021-03-02 13:41:16 · 132 阅读 · 0 评论 -
华为机试之句子逆序
句子逆序1>题目描述2>解法一3、解法二1>题目描述题目描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符输入描述:输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。输出描述:得到逆序的句子2>解法一1、利用String的split()方法分割成字符串数组2、然后对字符串数组倒序处理3、最后利用Str原创 2021-03-02 13:40:47 · 135 阅读 · 0 评论 -
华为机试之字符串反转
字符串反转1>题目描述2>解法3>其它解法1>题目描述题目描述:接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入描述:输入一行,为一个只包含小写字母的字符串。输出描述:输出该字符串反转后的字符串。2>解法双指针法import java.util.*;public class Main{ public static void main(String[] args){原创 2021-03-02 13:41:35 · 190 阅读 · 3 评论 -
华为机试题之数字颠倒
这里写目录标题1>题目描述2>解法一3>解法二1>题目描述题目描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出2>解法一import java.util.*;public class Main{ public static void main(String[] arg原创 2021-02-28 12:39:19 · 140 阅读 · 0 评论 -
华为机试题之字符个数统计
字符个数统计1>题目描述2>解法3>更优解1>题目描述题目描述:编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3。输入描述:输入一行没有空格的字符串。输出描述:输出范围在(0~127)字符的个数。2>解法利用HashSet轻松解决,无序不重复,最后原创 2021-02-28 12:34:44 · 149 阅读 · 0 评论 -
华为机试题之提取不重复的整数
提取不重复的整数1>题目描述2>解法3>更优解1>题目描述题目描述:输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数2>解法使用了list来存储,因为首先要满足一直查重,还要满足按顺序。import java.util.*;public class Main{ publ原创 2021-02-28 12:28:11 · 100 阅读 · 1 评论 -
华为机试题之合并表记录
合并表记录1>题目描述2>解法1>题目描述题目描述:数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开。输出描述:输出合并后的键值对(多行)。2>解法key要升序且唯一,value对应相同的key时候值要合并,很明显使用TreeMap合适。import java.uti原创 2021-02-28 12:12:02 · 114 阅读 · 0 评论 -
华为机试题之取近似值
取近似值1>题目描述2>解法1>题目描述题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值2>解法将double类型强转成int类型,若得到值>=0.5&&<1,则强转结果+1import java.util.Scanner;/** * 题目描述 * 写出一个程序,接受原创 2021-02-28 12:01:32 · 138 阅读 · 0 评论 -
华为机试题之质数因子
质数因子1>题目描述2>方法一3>质数的计算1>题目描述题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。2>方法一利用了一个性质任意一个正整数n最多只有一个质因数大于根号n。所以首先在[2,sqrt(n原创 2021-02-28 11:53:57 · 118 阅读 · 0 评论 -
华为机试题之进制转化
进制转化1>题目描述2>方法一3>方法二1>题目描述题目描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。2>方法一1、首先利用substring截取除了0x后面的数字2、根据十六进制转十进制规律分别对A、B、C、D、E、F做处理。import java.util.原创 2021-02-28 01:41:18 · 219 阅读 · 0 评论 -
华为机试题之字符串分隔
字符串分隔1>题目描述2>解法1>题目描述题目描述连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入多次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组2>解法简单地说,如果字符串长度不为8的倍数就要在字符串后补充足够的0使字符串长度变为8的倍数。所以(8-length(字符串长度)%8)为需要在后面补齐的0的个数。原创 2021-02-28 01:31:55 · 161 阅读 · 0 评论 -
华为机试题之明明的随机数
明明的随机数1>题目描述2>题解1>题目描述题目描述:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止原创 2021-02-28 01:20:42 · 120 阅读 · 1 评论 -
华为机试题之计算某字母出现次数
字符串最后一个单词的长度1>题目描述2>解法3>更优解1>题目描述题目描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写。输入描述:第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。输出描述:输出输入字符串中含有该字符的个数。2>解法使用字符串的toUpperCase()和toLowerCase()方法先将所有字母转成同种类型再进行计算import java.u原创 2021-02-28 01:14:31 · 149 阅读 · 0 评论 -
华为机试题之字符串最后一个单词的长度
字符串最后一个单词的长度1>题目描述2>解法三级目录1>题目描述题目描述 计算字符串最后一个单词的长度,单词以空格隔开输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000。输出描述: 输出一个整数,表示输入字符串最后一个单词的长度。2>解法利用split来分割成字符串数组然后取import java.util.*;public class Main { public static void main (String[] arg原创 2021-02-27 23:26:31 · 122 阅读 · 0 评论