
牛客网华为机试题库103题--Java解法
牛客网华为机试题库,带答案
老子要睡觉觉
实在不知道怎么写了,祝大家事事顺利吧.
展开
-
11.数字颠倒
数字逆序挺麻烦的,字符串逆序还不简单吗,StringBuilder reverse方法。程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。数据范围: 0≤n≤230−1 0≤n≤230−1。输入一个整数,将这个整数以字符串的形式逆序输出。将这个整数以字符串的形式逆序输出。其实题目都已经说的很明显了。原创 2023-06-03 16:31:53 · 104 阅读 · 0 评论 -
1.字符串最后一个单词的长度
首先,题目中说了,整个字符串不以空格结尾,单词之间用空格间隔开,所以我们确定了最后一个空格的位置,就可以确定最后一个单词的首字母位置了。其次,最后一个单词的最后一个字母就是字符串的最后一个字母,所以我们可以用整个字符串的长度去获取,length。计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。补充:如果字符串前后都存在空格,我们只需要在获取到字符串的第一时间使用trim去掉前后空格即可。输入一行,代表要计算的字符串,非空,长度小于5000。最后一个单词为nowcoder,长度为8。原创 2023-06-02 11:05:54 · 292 阅读 · 0 评论 -
2.计算某字符出现次数
输出描述中提到了,不区分大小写字母。所以我们这里可以把两次输入的都转成全小写或全大写,这样就可以忽略大小写的问题了。写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。只要解决了这个问题,那整个题目都非常简单,无非就是最简单的遍历罢了。输出输入字符串中含有该字符的个数。(不区分大小写字母)数据范围: 1≤n≤1000 1≤n≤1000。原创 2023-06-02 11:12:42 · 111 阅读 · 0 评论 -
3.明明的随机数
其实在集合中,有一个能够刚好满足这两个功能的类,TreeSet;并且Integer是实现了Comparable接口的,所以我们可以使用TreeSet的add方法直接将Integer数据加到集合中,并且同时也可以实现排序的功能。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。接下来的 N 行每行输入一个整数,代表明明生成的随机数。数据范围: 1≤n≤1000 1≤n≤1000 ,输入的数字大小满足 1≤val≤500 1≤val≤500。原创 2023-06-02 11:23:12 · 125 阅读 · 0 评论 -
4.字符串分隔
补位可以在分割之前补,也可以分割到最后去补,但是分割到最后的判断有点繁琐,所以这里就在分割之前去补位了。先分析一下题目,一共2个需求,分割成长度为8的子字符串,总长度要补位成8的倍数。•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。连续输入字符串(每个字符串长度小于等于100)依次输出所有分割后的长度为8的新字符串。原创 2023-06-02 11:37:58 · 229 阅读 · 0 评论 -
5.进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。数据范围:保证结果在 1≤n≤231−1 1≤n≤231−1。原创 2023-06-02 12:01:08 · 278 阅读 · 0 评论 -
6.质数因子
例如: 题目的示例数字180,从2开始,180可以整除2,所以第一个质因数就是2,分解出2之后180变为90,再找90 的质因数,第一个仍然是2,所以第二个质因数就是2,分解出2之后90变为45,再次从头找,现在第一个能整除的数字是3,所以第三个质因数就是3,分解出3之后剩余的数字就是15,以此类推,180最后分解成的质因数就是 2 2 3 3 5。质因数,最小从2开始,求质因数要把这个数分解到不能再分解为止,所以每次找到一个质因数,那就让原数字变成分解出质因数之后剩下的数字,并且再次从头找.原创 2023-06-02 14:20:19 · 294 阅读 · 0 评论 -
7.取近似值
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。0.5>=0.5,所以5.5需要向上取整为6。数据范围:保证输入的数字在 32 位浮点数范围内。0.499<0.5,2.499向下取整为2。没啥太复杂的逻辑,取余之后跟0.5比大小就好了。输出该数值的近似整数值。原创 2023-06-02 14:23:39 · 85 阅读 · 0 评论 -
8.合并表记录
在之前的题目中我们做过去重且排序的场景,现在我们还可以这么做,用TreeSet将键存储起来,但是我不太清楚String的排序方式,所以这里把键转成了Integer存储到TreeSet中,数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。根据题目我们可以知道,首先,数据是以键值对的形式存储的,并且相同的键,数据要合并,其次,键要去重且排序。第二个问题,键值对的形式存储数据,那当然使用Map啊,原创 2023-06-02 14:50:21 · 341 阅读 · 0 评论 -
9.提取不重复的整数
从右往左边了,遍历顺序就是length-1 到 0,可以用一个空字符串去接收遍历到的字符,并且判断新的字符串中有没有当前遍历到的字符,如果有,下一个,最后输出新字符串就好。输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。数据范围: 1≤n≤108 1≤n≤108。保证输入的整数最后一位不是 0。输入一个int型整数。原创 2023-06-02 15:10:21 · 202 阅读 · 0 评论 -
10.字符个数统计
其实说实话,这道题就是去重之后看还剩多少数字,那我们拿到字符串之后遍历字符串,再把每一个对应的字符存储到Set中,Set会自动帮我们去重,所以不需要我们做判断,这样就完成了去重这一环节.之后我们再获取Set的size,就可以拿到一共有几种字符了.字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3。输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。原创 2023-06-02 15:42:42 · 265 阅读 · 0 评论