AI智能摘要
GPT
这里是萌新AI,这篇文章介绍了华为机试中的五道算法题。作者首先列出了题目名称和基本描述,然后详细讲解了第一题“计算某字符出现次数”的两种解决方法。核心思路是统一大小写后进行统计,并提供了具体的 Python 代码示例。文章鼓励日常练习算法,并邀请读者在评论区分享更好的方法。
URL
type
status
date
slug
summary
tags
category
icon
password
日常练习算法题!每天至少做一道算法题,上不封顶都会记录下来!伙伴们有好的方法可以在评论区留言!
📝 算法题
第一题:计算某字符出现次数
描述:
对于给定的由大小写字母、数字和空格混合构成的字符串s,给定字符c,按要求统计:
- 若c为大写或者小写字母,统计其大小写形态出现的次数和;
- 若c为数字,统计其出现的次数。保证字符c要么为字母、要么为数字。
输入描述:
第一行输入一个长度 1≦length(s)≦10^3,由大小写字母、数字和空格构成的字符串s。保证首尾不为空格。第二行输入一个字符c,保证c为大小写字母或数字。
输出描述:
在一行上输出一个整数,代表统计结果。
解决方法:
思路:首先,将输入字符串中字母的大写转换为小写;接着,循环遍历统计目标值出现的次数。
第二题:明明的随机数
描述:
对于明明生成的n个1到500之间的随机整数,你需要帮助他完成以下任务:
删去重复的数字,即相同的数字只保留一个,把其余相同的数去掉;
然后再把这些数从小到大排序,按照排好的顺序输出。你只需要输出最终的排序结果。
输入描述:
第一行输入一个整数n(1≦n≦1000),代表明明生成的数字个数。此后n行,第i行输入一个整数a_i (1≦ai≦500),代表明明生成的随机整数。
输出描述:
输出若干行,每行输出一个整数,代表输入数据排序后的结果。第一行输出最小的数字。
解决方法:
思路:第一种-借用Python自带函数实现。set()消除重复字符,sorted()进行排序。第二种:构建函数用于获取输入目标值插入集合下标。
第三题:字符串分隔
描述:
对于给定的由小写字母和数字混合构成的字符串s,你需要按每8个字符换一行的方式书写它,具体地:
- 书写前8个字符,换行;
- 书写接下来的8个字符,换行;
- ……
- 重复上述过程,直到字符串被完全书写。特别地,如果最后一行不满8个字符,则需要在字符串末尾补充0,直到长度为8。
输入描述:
在一行上输入一个长度 1≦length(s)≦100,由小写字母和数字构成的字符串s。
输出描述:
输出若干行,每行输出8个字符,代表按题意书写的结果。
解决方法:
思路:首先,计算字符串长度,如果不是8的倍数,那么在余数的基础上填补0;接着,按照每行8个字符输出。
第四题:进制转换
描述:
对于给定的十六进制数,输出其对应的十进制表示。在本题中,十六进制数的格式为:0x开头,后跟若干个十六进制数字(保证为0-9和A-F中的一个)。其中,A-F依次代表十进制中的10∼15。
输入描述:
在一行上输入一个十六进制数s,代表待转换的十六进制数,格式见题干。保证s转化得到的十进制数x的范围为1≦x<2^31。
输出描述:
在一行上输出一个整数,代表s对应的十进制数。
解决方法:
思路:首先,创建一个字典,用于构建字母对应的数值;接着,根据16进制转10进制的方法实现代码。
第五题:质数因子
描述:
对于给定的整数n,从小到大依次输出它的全部质因子。即找到这样的质数p1,p2,⋯ ,pk,使得 n=p1×p2×⋯×pk。
输入描述:
在一行上输入一个整数n(2≦n≦2×10^9+14)代表待分解的整数。
输出描述:
在一行上从小到大输出若干个整数,代表n的质因子。
解决方法:
思路:首先,将目标值取根号(这么做的目的减少秩因子搜索范围,防止超过时间限制);接着,目标值除以秩因子,若余数为0,则输出秩因子,否则,秩因子+1;最后,判断是否还有最后一个秩因子是否未输出。
📎 算法题原网址
以上便是今天的算法练习,如果伙伴们有好的方法,可以在下方评论区留下你们的方法!
- 作者:不爱吃香菜的萌新
- 链接:https://hexo.levsongsw.com//algorithm/huaweial1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



