华为机试题

目录

    • 第一章、HJ1计算字符串最后一个单词的长度,单词以空格隔开。
    • 1.1)描述
    • 1.2)解题
    • 第二章、算法题HJ2 计算某字符出现次数
    • 1.1)题目描述
    • 1.2)解题思路与答案
    • 第三章、算法题HJ3 明明的随机数
    • 1.1)题目描述
    • 1.2)解题思路与答案
    • 第四章、算法题HJ4 字符串分隔
    • 1.1)题目描述
    • 1.2)解题思路与答案
    • 第五章、算法题HJ5 进制转换
    • 1.1)题目描述
    • 1.2)解题思路与答案
    • 1.3)派仔的解题思路与答案
    • 第六章、算法题HJ6 质数因子
    • 1.1)题目描述
    • 1.2)文的盲的解题思路与答案
    • 第七章、算法题HJ7 取近似值
    • 1.1)题目描述
    • 1.2)第一种解题思路与答案
    • 1.3)第二种解题思路与答案
    • 第八章、算法题HJ8 合并表记录
    • 1.1)题目描述
    • 1.2)解题思路与答案

第一章、HJ1计算字符串最后一个单词的长度,单词以空格隔开。

1.1)描述

描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
在这里插入图片描述

1.2)解题

import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);String st = sc.nextLine();String[] s = st.split("\\s+") ;//或者st.split(" ");int length = s[s.length - 1].length();System.out.println(length);}}

第二章、算法题HJ2 计算某字符出现次数

1.1)题目描述

题目描述:
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例:
在这里插入图片描述

1.2)解题思路与答案

解题思路:
①查看示例是不关心大小写的,所以需要将大写转为小写
②将s1需要查找的字符串(即s2)全部替换为 “”
③将原来的字符串长度-替换过后的字符串长度=出现的次数

答案:

    public static void main(String[] args){Scanner input = new Scanner(System.in);// 输入第一个字符串并且全部转小写String s1 = input.nextLine().toLowerCase();// 输入单个字符串并且转小写String s2 = input.nextLine().toLowerCase();// 完整字符的长度-单个字符长度 = 出现的次数int num = s1.length() - s1.replaceAll(s2,"").length();System.out.println(num);}

第三章、算法题HJ3 明明的随机数

1.1)题目描述

题目描述:
明明生成了NN个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: 1 \le n \le 1000 \1≤n≤1000 ,输入的数字大小满足 1 \leval \le 500 \1≤val≤500

输入描述:
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述:
输出多行,表示输入数据处理后的结果

示例:
在这里插入图片描述

1.2)解题思路与答案

解题思路:
①将数据存入TreeSet集合进行去重+排序
②遍历输出数据

答案:

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//获取总个数int num = sc.nextInt();//创建TreeSet进行去重排序TreeSet se = new TreeSet();//输入num个数据for(int i =0 ; i < num ;i++){se.add(sc.nextInt());}Iterator iterator = se.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}}
}

第四章、算法题HJ4 字符串分隔

1.1)题目描述

题目描述:
描述
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:
连续输入字符串(每个字符串长度小于等于100)

输出描述:
依次输出所有分割后的长度为8的新字符串

示例:
在这里插入图片描述

1.2)解题思路与答案

Luo_xguan的解题思路:
1.获取输入的字符串
2.判断字符串长度,小于8,在后面补上0,达到8位,大于8,先以8位作为
一段截取,再判断剩余字符串长度与8比较,如果小于8,照上述操作,大于8,先截取8位,再判断剩下的…如此循环操作。

答案:

import java.util.Scanner;
/*** @author lxg* @description 字符串分割* @date 2021/9/26*/
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);while(input.hasNextLine()){String s = input.nextLine();split(s);}}public static void split(String s){while(s.length()>=8){System.out.println(s.substring(0,8));s=s.substring(8);}if(s.length()<8 && s.length()>0){s+="00000000";System.out.println(s.substring(0,8));}}
}

第五章、算法题HJ5 进制转换

1.1)题目描述

题目描述:
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在

输入描述:
输入一个十六进制的数值字符串。

输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例:
在这里插入图片描述

1.2)解题思路与答案

解题思路:
①使用Java自带的Integer.parseInt(String,16) 方法

答案:

import java.io.*;
import java.util.*;public class Main{public static void main(String[] args) throws Exception{Scanner sc = new Scanner(System.in);while(sc.hasNextLine()){String s = sc.nextLine();System.out.println(Integer.parseInt(s.substring(2,s.length()),16));}}
}

1.3)派仔的解题思路与答案

①res = res * BASE + map.get(ch); 这个公式是精华原理如图:
在这里插入图片描述

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Putest {private final static int BASE = 16;private static Map<Character, Integer> map = new HashMap<Character, Integer>(){{put('0', 0);put('1', 1);put('2', 2);put('3', 3);put('4', 4);put('5', 5);put('6', 6);put('7', 7);put('8', 8);put('9', 9);put('A', 10);put('B', 11);put('C', 12);put('D', 13);put('E', 14);put('F', 15);put('a', 10);put('b', 11);put('c', 12);put('d', 13);put('e', 14);put('f', 15);}};public static int getDecimal(String number) {int res = 0;char [] arr =number.toCharArray();for( int i=0;i<arr .length;++i){//这个公式是精华,map.get()方法返回指定键所映射的值res = res * BASE + map.get(arr[i]);}/*      也可以这样写循环for (char ch : number.toCharArray()) {//这个公式是精华,map.get()方法返回指定键所映射的值res = res * BASE + map.get(ch);}*/return res;}public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {String number = in.next();int res = getDecimal(number.substring(2));System.out.println(res);}}
}

第六章、算法题HJ6 质数因子

1.1)题目描述

题目描述:
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
在这里插入图片描述

输入描述:
输入一个整数

输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

示例:
在这里插入图片描述
在这里插入图片描述

1.2)文的盲的解题思路与答案

解题思路:
①试除法是一种简单有效的方法,可以快速找到给定数的质因数。首先,从最小的质数2开始,不断用给定数去除,如果能整除,则找到一个质因数,并将其记录下来。然后将商作为新的数,继续用质数去除,直到商变为1为止。这样就可以找到给定数的所有质因数。
②因为一个正整数最多有一个质因子大于其平方根,且只会是其本身所以我们判断数 num 是不是质数时,没必要从 2 一直尝试到 num 一样,此题中的大循环也大可不必写一个到 num 的循环,写到 根号num即可,如果此时数字还没有除数,则可判定其本身是一个质数,没有再除下去的必要了,直接打印其本身即可:

答案:

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);long num = scanner.nextLong();long k = (long) Math.sqrt(num);for (long i = 2; i <= k; ++i) {while (num % i == 0) {System.out.print(i + " ");num /= i;}}System.out.println(num == 1 ? "": num+" ");
}

第七章、算法题HJ7 取近似值

1.1)题目描述

题目描述:
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内

输入描述:
输入一个正浮点数值

输出描述:
输出该数值的近似整数值

示例:
在这里插入图片描述

1.2)第一种解题思路与答案

派仔的解题思路:
①浮点数强转int时,直接舍掉小数,只留下整数。

答案:

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);double number = in.nextDouble();System.out.println((int)(number + 0.5));}
}

1.3)第二种解题思路与答案

解题思路:
①Java中的Math.round()方法是将浮点型进行“四舍五入”转换为int类型的一个方法

答案:

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);Double d = sc.nextDouble();System.out.println((int)Math.round(d));}
}

第八章、算法题HJ8 合并表记录

1.1)题目描述

题目描述:
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000

输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开

输出描述:
输出合并后的键值对(多行)

示例:
在这里插入图片描述

1.2)解题思路与答案

fuxiaoxian的解题思路:
①使用map, 然后要自动排序,就可是使用treeMap
②用map自带的getOrDefault方法,如果根据key没有值,就用默认的0表示方法的值,如果能根据key找到对应的值,那么直接赋值

答案:

import java.util.*;
public class Main {public static void main(String[] args){Scanner sc = new Scanner(System.in);TreeMap<Integer,Integer>  map = new TreeMap<>();while(sc.hasNext()){int n = sc.nextInt();for(int i =0;i<n;i++){int key = sc.nextInt();int value = sc.nextInt();map.put(key,map.getOrDefault(key,0)+value);}for(Integer i : map.keySet()){System.out.println(i+" "+map.get(i));}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eBPF专题一 | 手把手教你用eBPF诊断MySQL(含源码)

DBdoctor 是一款数据库内核级性能诊断工具&#xff0c;利用eBPF技术深入数据库内核&#xff0c;致力于解决数据库的一切性能问题。 被称之为“革命性”内核技术的eBPF一直以来都备受关注&#xff0c;而DBdoctor作为一款数据库性能诊断工具&#xff0c;首次将eBPF技术深入应用…

FPGA实现Canny算法(Verilog)

在边缘检测算法里面Sobel是比较简单的一个算法&#xff0c;但是其检测出来的边缘往往是比较粗的&#xff0c;效果不是很好&#xff0c;因为我们最理想的边缘肯定就是一个宽度为1的细线。 Canny算法在此基础上进行了改进&#xff0c;通过使用边缘的梯度信息进行非最大值抑制(NM…

【随笔】Git 高级篇 -- 最近标签距离查询 git describe(二十一)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

【计算机毕业设计】企业仓储管理系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

python-pytorch实现CBOW 0.5.000

python-pytorch实现CBOW 0.5.000 数据加载、切词准备训练数据准备模型和参数训练保存模型加载模型简单预测获取词向量降维显示图使用词向量计算相似度参考 数据加载、切词 按照链接https://blog.csdn.net/m0_60688978/article/details/137538274操作后&#xff0c;可以获得的数…

由近期 RAGFlow 的火爆看 RAG 的现状与未来

4 月 1 日&#xff0c;InfiniFlow &#xff08;英飞流&#xff09;的端到端 RAG 解决方案 RAGFlow 正式开源&#xff0c;首日即获得了 github 千星&#xff0c;目前已接近 3000 star。在这之前&#xff0c;InfiniFlow 还开源了专门用于 RAG 场景的 AI 原生数据库 Infinity&…

用 ElementPlus 的日历组件 Calendar 自定义渲染

文章目录 需求分析1. 英文改为中文2. 修改样式3. 自定义头部4. 增删改功能接入需求 使用 ElementPlus中的 Calendar 组件完成自定义渲染 分析 1. 英文改为中文 转为中文的方式:用 ElementPlus的日历组件如何改为中文 2. 修改样式 附源码<template><el-calendar&…

linux查看硬盘空间使用情况

df &#xff08;1&#xff09;查看磁盘空间的占用情况 -h是给大小带上单位 df -h 总空间不一定等于已用未用&#xff0c;系统可能留出来一点空间另做他用 &#xff08;2&#xff09;查看INode的使用情况 df -idu du命令比df命令复杂一点&#xff0c;是查看文件和目录占用的…

部署GlusterFS群集

目录 一、部署GlusterFS群集 1. 服务器节点分配 2. 服务器环境&#xff08;所有node节点上操作&#xff09; 2.1 关闭防火墙 2.2 磁盘分区&#xff0c;并挂载 2.3 修改主机名&#xff0c;配置/etc/hosts文件 3. 安装、启动GlusterFS&#xff08;所有node节点上操作&…

51单片机入门_江协科技_25~26_OB记录的笔记_蜂鸣器教程

25. 蜂鸣器 25.1. 蜂鸣器介绍 •蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常用来产生设备的按键音、报警音等提示信号 •蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器&#xff08;开发板上用的无源蜂鸣器&#xff09; •有源蜂鸣器&#xff1a;内部自带振荡源&a…

二:什么是RocketMQ

RocketMQ是阿里开源的消息中间件产品&#xff0c;纯Java开发&#xff0c;具有高吞吐量、高可用性、适合大规模分布式系统应用的特点,性能强劲(零拷贝技术)&#xff0c;支持海量堆积,在阿里内部进行大规模使用&#xff0c;适合在互联网与高并发系统中应用。 官方文档&#xff1a…

【Linux】虚拟化技术docker搭建SuitoCRM系统及汉化

CRM系统 CRM&#xff08;Customer Relationship Management&#xff0c;客户关系管理&#xff09;系统是一种用于管理和优化企业与客户关系的软件工具。在商业竞争激烈的现代社会中&#xff0c;CRM系统已成为许多企业提高销售、增强客户满意度和实现持续增长的重要工具。本文将…

计算器(C语言)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 介绍关键代码运行代码&#xff08;3种&#xff09; 介绍 标准计数器&#xff1a;执行加减乘除等等科学计算器&#xff1a;执行分数、统计学、指数函数、对数、三角…

BoostCompass(数据准备预处理模块)

阅读导航 一、网页数据下载二、编写数据去标签与数据清洗的模块 Parser✅boost 开发库的安装1. 基本思路2. 详细讲解&#xff08;1&#xff09;程序递归遍历目录&#xff0c;收集所有HTML文件的路径&#xff08;2&#xff09;对每个HTML文件进行解析&#xff0c;提取出文档标题…

【资源分享】书籍:现代统计学:使用Python的计算方法

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…

【微服务】------微服务架构技术栈

目前微服务早已火遍大江南北&#xff0c;对于开发来说&#xff0c;我们时刻关注着技术的迭代更新&#xff0c;而项目采用什么技术栈选型落地是开发、产品都需要关注的事情&#xff0c;该篇博客主要分享一些目前普遍公司都在用的技术栈&#xff0c;快来分享一下你当前所在用的技…

Java每日一题(三道同一类型的题)

前言 本文一共有三道题:1.两数之和 2.三数之和 3. 四数之和 为什么把这三道题放一起呢&#xff0c;因为三数之和是可以根据两数之和进行推导&#xff0c;四数之和可以根据三数之和进行推导。 两数之和 思路分析: 我的思路: 1.排序 2.使用左右指针 3.处理细节问题 先让数组…

生活中的数学 --- 等额本息贷款和等额本金贷款的月供应该怎么算?

等额本息贷款和等额本金贷款的月供应该怎么算&#xff1f; 从一个例子开始&#xff0c;假设我要从银行贷款36万(即&#xff0c;本金)&#xff0c;银行给出的贷款年利率是12%(月利率为年利率除以12)&#xff0c;贷款半年(6个月)&#xff0c;按月还款&#xff0c;分6期还完。 问分…

电池二次利用走向可持续大循环周期的潜力和挑战(第二篇)

一、二次利用风险 电动汽车的当前电池信息&#xff0c;如年份、容量和制造商&#xff0c;通常是相互关联和不完整的。再加上电池内部的电化学变化&#xff0c;SLB在包括安全和环境在内的一些领域存在很大的风险&#xff0c;这表明短期内梯次利用仍然是一个不成熟的方案。 1.1 安…

在mysql中如何更新数据呢?

如何更新一条数据&#xff1f; 在 MySQL 中&#xff0c;更新一条数据可以使用 UPDATE 语句。以下是更新一条数据的基本语法&#xff1a; UPDATE table_name SET column1 value1, column2 value2,... WHERE condition;其中&#xff1a; table_name&#xff1a;要更新的表的…