算法学习——华为机考题库1(HJ1 - HJ10)
算法学习——华为机考题库1(HJ1 - HJ10)
HJ1 字符串最后一个单词的长度
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例

代码解析
#include <iostream>
#include <vector>
#include <string>
using namespace std;int main() {int a, b;vector<string> my_vec_str;string tmp;while (cin >> tmp ) { // 注意 while 处理多个 casemy_vec_str.push_back(tmp);// cout << tmp<< endl;}string result = my_vec_str[my_vec_str.size()-1];cout<<result.size();}
// 64 位输出请用 printf("%lld")
HJ2 计算某字符出现次数
描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围: 1 ≤ n ≤ 1000
输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例

代码解析
#include <cstdio>
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;int main() {string tmpStr;char tmpChar;unordered_map<char, int>myMap;getline(cin, tmpStr);cin>>tmpChar;for(int i=0 ; i<tmpStr.size() ;i++)myMap[tmpStr[i]]++;if(tmpChar >= '0' && tmpChar <= '9') {cout<<myMap[tmpChar];return 0;} if(tmpChar >= 'a' && tmpChar <= 'z') tmpChar = tmpChar - 'a';else if(tmpChar >= 'A' && tmpChar <= 'Z') tmpChar = tmpChar - 'A';cout<< myMap[tmpChar + 'a'] + myMap[tmpChar + 'A'];return 0;
}
// 64 位输出请用 printf("%lld")
HJ3 明明的随机数
描述
明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。
数据范围: 1 ≤ n ≤ 1000 ,输入的数字大小满足 1 ≤ val ≤ 500
输入描述:
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:
输出多行,表示输入数据处理后的结果
示例

代码解析
#include <iostream>
#include <set>
using namespace std;int main() {int N = 0;set<int> myset;cin >> N;int tmp;while(N--){cin >> tmp;myset.insert(tmp);}for(auto it:myset) cout<<it<<endl;
}
// 64 位输出请用 printf("%lld")
HJ4 字符串分隔
描述
-
输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
-
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
示例

代码解析
#include <iostream>
using namespace std;int main() {string myStr;cin>>myStr;int lenght = myStr.size();if(myStr.size()%8 != 0) lenght += 8 - myStr.size()%8;cout<<myStr[0];for(int i=1 ; i<lenght ; i++){if(i%8 == 0) cout<<endl;if(i<myStr.size()) cout<<myStr[i];else cout<<0;}
}
// 64 位输出请用 printf("%lld")
HJ5 进制转换
描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1≤n≤ 231 −1
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例

代码解析
#include <iostream>
using namespace std;int main() {string tmpStr;int result = 0;cin>>tmpStr;for(int i=2 ; i <tmpStr.size() ;i++){int tmp = 0;if(tmpStr[i] >= '0' && tmpStr[i] <= '9' ) tmp = tmpStr[i] - '0';else tmp = tmpStr[i] - 'A' + 10;result = result *16 + tmp; }cout<<result;
}
// 64 位输出请用 printf("%lld")
HJ6 质数因子
描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围: 1≤n≤2×109 +14
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例

代码解析
#include <cmath>
#include <iostream>
using namespace std;int main() {int num = 0;cin>>num;for(int i=2 ; i <= sqrt(num) ; i++) //质数不会超过自己的根号{while((num%i) == 0){num = num/i;cout<<i<<' ';}}if(num > 1) cout<<num;return 0;
}
// 64 位输出请用 printf("%lld")
HJ7 取近似值
描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
**数据范围:**保证输入的数字在 32 位浮点数范围内
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例

代码示例
#include <iostream>
using namespace std;int main() {float num;cin>>num;num += 0.5;cout<<(int)num;
}
// 64 位输出请用 printf("%lld")
HJ8 合并表记录
描述
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例

代码示例
#include <iostream>
#include <map>
using namespace std;int main() {int size;map<int, int> myMap;cin>>size;int index , value;for(int i=0 ; i<size ; i++){cin>>index>>value;myMap[index] += value;}for(auto it:myMap){cout<<it.first<<' '<<it.second<<endl;}
}
// 64 位输出请用 printf("%lld")
HJ9 提取不重复的整数
描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1≤n≤108
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例

代码解析
#include <algorithm>
#include <iostream>
#include <string>
#include <unordered_set>
#include <vector>
using namespace std;int main() {int num;string numStr;vector<char> myVec;cin>>num;numStr = to_string(num);for(int i=numStr.size()-1 ; i>=0 ; i--){if(find(myVec.begin() , myVec.end() , numStr[i]) == myVec.end()) {myVec.push_back(numStr[i]);}}for(auto it:myVec)cout<<it;}
// 64 位输出请用 printf("%lld")
HJ10 字符个数统计
描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围: 1≤n≤500
输入描述:
输入一行没有空格的字符串。
输出描述:
输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
示例

代码解析
#include <iostream>
#include <set>
#include <string>
using namespace std;int main() {string myStr;set<char> mySet;cin >> myStr;for(int i=0 ; i < myStr.size() ;i++){mySet.insert(myStr[i]);}cout<<mySet.size();
}
// 64 位输出请用 printf("%lld")
相关文章:
算法学习——华为机考题库1(HJ1 - HJ10)
算法学习——华为机考题库1(HJ1 - HJ10) HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述&…...
PSQL常用操作
目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾,还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了),实操记录,版本pgsql12…...
C++ “万能血“ void*指针
本篇文章我们来介绍一下C “万能血” void指针 为什么说他万能呢? 原因:C void* 是一种特殊的指针类型,可用于存放任意对象的地址。在函数传参中也可以作为任何实参的形参 void型详细介绍 void* 是C中的一种特殊的指针类型,被称为"无类…...
微信小程序新手入门教程四:样式设计
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,决定了 WXML 的组件会怎么显示。 WXSS 具有 CSS 大部分特性,同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS …...
类银河恶魔城学习记录1-6 Flip基本设置源代码 P33
Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; us…...
【Git教程】(一)基本概念 ——工作流、分布式版本控制、版本库 ~
Git教程 基本概念 1️⃣ 为什么要用 Git2️⃣ 为什么要用工作流3️⃣ 分布式版本控制4️⃣ 版本库5️⃣ 简单的分支创建与合并🌾 总结 在本章中,将介绍一个分布式版本控制系统的设计思路,以及它与集中式版本控制系统的不同之处。除此之外&am…...
【QT】VS-code报错:LNK2019: 无法解析的外部符号
目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1)set() 相关语句 2)target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错:报错…...
基于 NXP S32K344 的汽车通用评估板方案
S32K3xx 系列是 NXP 基于 ARMCortex-M7 的汽车工业级 MCU,符合 ISO26262 ASIL-D 汽车功能安全等级,支持 ASIL B/D 安全应用,提供了一个可扩展的平台,具有下一代安全性、可扩展性、连接性和低功耗特性。适用于可能会在严酷环境下工…...
WebAssembly002 FFmpegWasmLocalServer项目
项目介绍 https://github.com/incubated-geek-cc/FFmpegWasmLocalServer.git可将音频或视频文件转换为其他可选的多媒体格式,并导出转码的结果 $ bash run.sh FFmpeg App is listening on port 3000!运行效果 相关依赖 Error: Cannot find module ‘express’ …...
瑞_力扣LeetCode_二叉树相关题
文章目录 说明题目 144. 二叉树的前序遍历题解 题目 94. 二叉树的中序遍历题解 题目 145. 二叉树的后序遍历题解 题目 105. 从前序与中序遍历序列构造二叉树题解 题目 106. 从中序与后序遍历序列构造二叉树题解 🙊 前言:本文章为瑞_系列专栏之《刷题》的…...
Axios设置token到请求头的三种方式
1、为什么要携带token? 用户登录时,后端会返回一个token,并且保存到浏览器的localstorage中,可以根据localstorage中的token判断用户是否登录,登录后才有权限访问相关的页面,所以当发送请求时,都要携带to…...
微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用
1 微服务的概念 区别于单体项目 单体项目拆分成微服务项目的目标:高内聚、低耦合 拆分思路 纵向拆分:根据功能模块 横向拆分:抽取可复用模块 2 微服务拆分——远程调用 背景:微服务单一职责,每个服务只有自己的功能…...
Arthas使用教程—— 阿里开源线上监控诊断产品
文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 :启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 (类比 jinfo)3.6 通过 jad 来反编译 …...
mac电脑快捷指令实现拼图
mac访达,搜索输入‘快捷指令’,找到‘快捷指令’, 点击快捷指令,进入快捷指令中心,搜索‘拼图’ ,选中‘照片拼图’, 点击‘添加快捷指令’, 在‘所有快捷键指令’中可以看到添加的快…...
R语言入门笔记2.1
分支、循环与函数(1) 1.if语句 在R语言中,if语句用于根据条件执行不同的代码块。其基本语法如下: if (condition) {# 如果条件为真,执行这里的代码块 } else {# 如果条件为假,执行这里的代码块 } 其中&…...
补题:leetcode第382场周赛 3022. 给定操作次数内使剩余元素的或值最小
3022. 给定操作次数内使剩余元素的或值最小 - 力扣(LeetCode) 拆位 n个数进行或运算的结果最小,每次操作可以对相邻的两个数进行与运算,至多进行k次操作 n个数进行或运算,可以对每个数进行拆解,拆解成最小…...
创建型模式-单例模式:定义、实现及应用
目录 一、模式定义二、针对问题1.解决的问题2.解决方案3.举个例子4.设计模式适合场景5.实现方式6.优缺点7.与其他模式的关系 三、代码实现 一、模式定义 单例模式(Singleton Pattern)是一种创建型模式,用于限制某个类只能创建一个对象。它提…...
Prime(VulnHub)
Prime 文章目录 Prime1、nmap2、web渗透随便看看首页隐写查看目录爆破gobusterferoxbusterdirsearchdirb whatwebsearchsploit WordPress 5.2.2/dev/secret.txtFuzz_For_Webwfuzzimage.phpindex.php location.txtsecrettier360文件包含漏洞包含出password.txt尝试ssh登入尝试登…...
爬虫工作量由小到大的思维转变---<第四十二章 Scrapy Redis 重试机制(ip相关)>
前言: 之前讲过一篇关于scrapy的重试机制的文章,那个是针对当时那哥们的代码讲的,但是,发现后面还是有很多问题; 本章节就着scrapy的重试机制来讲一下!!! 正文: 首先,要清楚一个概念,在scrapy的中间件中,默认会有一个scrapy重试中间件;只要你在settings.py设置中写上: RETR…...
python日志管理配置
日志基础配置文件 日志回转查看:参考:https://blog.csdn.net/B11050729/article/details/132353220 项目使用注解实现 """ settings.py logging配置 """ import osroot_dir os.path.normpath(os.path.join(os.path.ab…...
如何用 writable 属性描述符限制 JavaScript 对象属性修改.txt
Lock wait timeout exceeded 表示事务等待行锁超时(默认50秒),本质是被其他长事务或未提交操作阻塞,并非数据库性能问题;需通过INNODB_TRX和performance_schema定位锁源,排查索引缺失、MDL锁及锁链式等待。…...
滑动窗口(数组)
作用滑动窗口:求连续满足条件的最短子数组代码模板int left 0; int right;//外层循环扩展右边界,内层循环扩展左边界 for (right 0; right < n; right) {//获取当前考虑的元素while (left < right && check()) {//区间[left,right]不符合…...
HiveWE:现代化魔兽争霸III地图编辑器完全指南
HiveWE:现代化魔兽争霸III地图编辑器完全指南 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 还在为魔兽争霸III原版地图编辑器缓慢的加载速度和复杂的操作而烦恼吗?HiveWE作为一款专…...
白嫖使用 Claude Opus 4.7 一个月,新手保姆级教程
挖槽,最近亚马逊做了一次大善人,为它自家的 Kiro 做拉新活动,新注册账号可以直接获得一个月的 Kiro Pro 会员,价值 20 美刀。 教程非常详细,所以有点长,想看最短流程版的可以直接划到文章末尾。 Kiro 是什…...
2026最权威的五大降AI率网站横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于当下学术研究的语境里,AI论文工具有着强大功能,可全面涵盖文献梳理…...
AI智能体开发实战:从框架选型到部署优化的全流程指南
1. 项目概述与核心价值最近在探索AI智能体(AI Agent)和自动化工作流领域时,我反复被一个名字刷屏:AwesomeClaw。这个由CrayBotAGI团队开源的项目,在GitHub上迅速获得了大量关注。乍一看,它像是一个又一个“…...
别再手撸流程图了!用Vue-super-flow + Element UI 10分钟搞定审批流原型
用Vue-super-flow Element UI快速构建企业级审批流原型 在企业内部管理系统中,审批流程是最常见的功能需求之一。传统的手工绘制流程图方式不仅效率低下,而且难以与业务系统无缝集成。现在,借助Vue-super-flow这一强大的Vue流程图组件&#…...
FPGA加速的医疗影像深度学习分类系统实现14.5μs超低延迟
1. 项目背景与核心挑战在医疗影像分析领域,淋巴细胞亚群(如T4、T8和B细胞)的快速准确分类对疾病诊断和治疗监测至关重要。传统方法依赖荧光标记和人工镜检,存在操作复杂、成本高昂且主观性强的问题。我们团队开发的基于明场显微镜…...
羽毛球正反手抽球
文章目录 引言 I 正手抽球 II 反手抽球 1. 准备与步法 2. 握拍与引拍 3. 挥拍与击球 4. 随挥与回动 引言 羽毛球正手抽球和反手抽球是两项重要的中前场技术。正手抽球强调侧身架拍、腰部转体带动发力,击球点保持在身体前方半米处,利用小臂内旋和食指挤压拍柄发力。反手抽球则…...
安全测试人员必备:手把手教你用WePE+Ghost镜像在VMware里快速部署Win7靶机环境
安全测试人员必备:手把手教你用WePEGhost镜像在VMware里快速部署Win7靶机环境 在网络安全学习和渗透测试领域,拥有一个随时可用的标准化测试环境至关重要。对于刚入门的安全研究员、白帽子或需要进行漏洞复现的技术人员来说,Windows 7系统仍然…...
