自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 计算某字符出现次数

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)数据范围: 1≤n≤1000 1 \le n \le 1000 \ 1≤n≤1000 第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。输出输入字符串中含有该字符的个数。(不区分大小写字母)...

2022-06-22 10:01:25 235 1

原创 华为机试:密码强度等级

一、题目:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5分:小于等于4个字符、10分:5到7字符、25分:大于等于8个字符二、字母:0分:没有字母、10分:全都是小(大)写字、20分:大小写混合字母三、数字:0分:没有数字、10分:1个数字、20分:大于1个数字四、符号:0分:没有符号、10分:1个符号、25分:大于1个符号五、奖励:2分:字母和数字、3分:字...

2021-09-07 20:43:09 592

原创 华为机试:求最大连续bit数

一、题目:描述求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1本题含有多组样例输入。输入描述:输入一个byte数字输出描述:输出转成二进制之后连续1的个数二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<vector>int main(){ int num; while(cin>>nu

2021-09-07 11:38:17 330

原创 华为机试:最长回文子串

一、题目:描述给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串(注意:记得加上while处理多个测试用例)输入描述:输入一个仅包含小写字母的字符串输出描述:返回最长回文子串的长度二、输入输出示例:三、思路:动态规划:f[i][j] = 1 or 0 ,1表示字符串i到j(闭区间)是回文,0表示不是。则:f[ i ][ i ] = 1(单个字符串是

2021-09-04 11:31:26 241

原创 华为机试:统计大写字母个数

一、题目:描述找出给定字符串中大写字符(即'A'-'Z')的个数。输入描述:本题含有多组样例输入对于每组样例,输入一行,代表待统计的字符串输出描述:对于每组样例,输出一个整数,代表字符串中大写字母的个数二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<string>int main(){ string s; while(getline(cin.

2021-09-04 10:44:02 621

原创 华为机试:字符串字符匹配

一、题目:描述判断短字符串中的所有字符是否在长字符串中全部出现。请注意本题有多组样例输入。输入描述:输入两个字符串。第一个为短字符串,第二个为长字符串。两个字符串均由小写字母组成。输出描述:如果短字符串的所有字符均在长字符串中出现过,则输出true。否则输出false。二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<string>int main(){.

2021-09-04 10:08:01 295

原创 华为机试:整型数组合并

一、题目:描述题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素。输出时相邻两数之间没有空格。请注意本题有多组样例。输入描述:输入说明,按下列顺序输入:1输入第一个数组的个数2输入第一个数组的数值3输入第二个数组的个数4输入第二个数组的数值输出描述:输出合并之后的数组二、输入输出示例:三、代码:1、偷懒,直接用set容器:#include<iostream>using namespace std;#includ...

2021-09-03 19:31:28 402

原创 华为机试:尼科彻斯定理

一、题目:描述验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。本题含有多组输入数据。输入描述:输入一个int整数输出描述:输出分解后的string二、输入输出示例:三、代码:#include<iostream>using namespace std.

2021-09-03 14:29:20 307

原创 华为机试:公共子串计算

一、题目:描述给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。输入描述:输入两个只包含小写字母的字符串输出描述:输出一个整数,代表最大公共子串的长度二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<string>#include<vector>int ma

2021-09-03 10:46:47 469

原创 华为机试:参数解析

一、题目:描述在命令行输入如下命令:xcopy/sc:\d:\,各个参数如下:参数1:命令字xcopy参数2:字符串/s参数3:字符串c:\参数4:字符串d:\请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则:1.参数分隔符为空格2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy/s "C:\programfiles" "d:\"时,参数仍然是4个,第3个参数应该是字符串C:\programf...

2021-09-02 22:10:10 120

原创 华为机试:计算日期到天数转换

一、题目:描述根据输入的日期,计算是这一年的第几天。输入描述:输入一行,每行空格分割,分别是年,月,日输出描述:输出是这一年的第几天二、输入输出示例:三、代码:#include<iostream>using namespace std;int main(){ int year,mouth,day; int res = 0; while(cin>>year>>mouth>>day){

2021-09-02 21:38:38 390

原创 华为机试:百钱买百鸡问题

一、题目:描述公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?详细描述:接口说明原型:intGetResult(vector&list)输入参数:无输出参数(指针指向的内存区域保证有效):list鸡翁、鸡母、鸡雏组合的列表返回值:-1失败 0成功输入描述:输入任何一个整数,即可运行程序。二、输入输出示例:三、代码:#include<ios...

2021-09-02 19:06:16 115

原创 华为机试:矩阵乘法计算量估算

一、题目:输入描述:输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入要计算的法则计算的法则为一个字符串,仅由左右括号和大写字母('A'~'Z')组成,保证括号是匹配的且输入合法!输出描述:输出需要进行的乘法次数二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<vector>#include<stack>#include&.

2021-09-02 13:52:28 134

原创 华为机试:矩阵乘法

一、题目:二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<vector>int main(){ int x,y,z; while(cin>>x>>y>>z){ int num; vector<vector<int>> v1(x,vector<int>(y)); .

2021-08-31 13:55:48 154

原创 华为机试:成绩排序

一、题目:查找和排序输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:jack70peter96Tom70smith67从高到低成绩peter96jack70Tom70smith67从低到高smith67jack70Tom70peter96注:0代表从...

2021-08-30 21:53:07 293

原创 华为机试: 配置文件恢复

一、题目:二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<string>int main(){ string a[7] = {"reset","reset board","board add","board delete", "reboot backplane","backplane abort","he he",}; s.

2021-08-30 09:50:30 105

原创 NC51 合并k个已排序的链表

一、题目:合并 k个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度。二、输入输出示例:三、代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: L..

2021-08-28 10:06:12 96

原创 NC132 环形链表的约瑟夫问题

一、题目:编号为 111 到 nnn 的 nnn 个人围成一圈。从编号为 111 的人开始报数,报到 mmm 的人离开。下一个人继续从 111 开始报数。n−1n-1n−1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少?二、输入输出示例:三、代码:class Solution {public: /** * * @param n int整型 * @param m int整型 * @return int整型

2021-08-28 09:47:18 123

原创 NC23 划分链表

一、题目:二、输入输出示例:三、思路:将大于等于x的结点按顺序存入一个链表,再将小于x的结点存入一个链表,然后将两个链表连接即可。四、代码:/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param head ListNode类 * @param x in...

2021-08-27 19:44:18 133

原创 NC69 链表中倒数最后k个结点

一、题目:描述输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。二、输入输出示例:三、代码:直接获取链表中结点的个数,然后结点个数-k就是导数第k个元素的位置(正着数)/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} *

2021-08-27 16:21:40 117

原创 NC25 删除有序链表中重复的元素-I

一、题目:描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→21\to1\to21→1→2,返回1→21 \to 21→2.给出的链表为1→1→2→3→31\to1\to 2 \to 3 \to 31→1→2→3→3,返回1→2→31\to 2 \to 31→2→3.二、输入输出示例:三、代码:/** * struct ListNode { * int val; * struct ListNode *next;

2021-08-27 15:29:58 63

原创 NC2 重排链表

一、题目:二、输入输出示例:三、思路:题目怎么要求,就怎么变换链表结点,但要注意,链表是单向的,一旦改变其中结点的指向,被改变的结点的原指针指向的结点可能会丢失,所以必须要预先记好。所以用到了4个指针,即p1,p2,lastpre,last,p1初始化为表头,p2记录p1的下一个结点,因为p1要指向最后一个结点,改变p1的指针之后就找不到p1原来指向的结电了,同理,lastpre是用来记录最后一个结点的前一个结点的。四、代码:/** * Definition for singl

2021-08-27 14:47:48 44

原创 NC66 两个链表的第一个公共结点

一、题目:描述输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)二、输入输出示例:三、代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirst

2021-08-27 11:02:16 44

原创 NC21 链表内指定区间反转

一、题目:描述将一个链表m\ mm 位置到n\ nn 位置之间的区间反转,要求时间复杂度 O(n)O(n)O(n),空间复杂度 O(1)O(1)O(1)。例如:给出的链表为 1→2→3→4→5→NULL1\to 2 \to 3 \to 4 \to 5 \to NULL1→2→3→4→5→NULL, m=2,n=4m=2,n=4m=2,n=4,返回 1→4→3→2→5→NULL1\to 4\to 3\to 2\to 5\to NULL1→4→3→2→5→NULL.注意:给出的 mmm...

2021-08-27 10:34:34 134

原创 NC133 链表的奇偶重排

一、题目:描述给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。注意是节点的编号而非节点的数值。二、输入输出示例:三、思路:奇数结点和偶数结点不可以分开处理,因为他们彼此关联,如果先处理奇数,再处理偶数,就会发现最终会找不到偶数项,因为指向偶数项的指针是奇数项,如果全部改变了奇数项的指针,就找不到偶数项了,所以需要奇数项和偶数项一起处理。四、代码:/** * struct ListNode { * int val; * str.

2021-08-26 21:59:49 90

原创 NC96 判断一个链表是否为回文结构

一、题目:描述给定一个链表,请判断该链表是否为回文结构(逆序之后和原来相同)。二、输入输出示例:三、思路:用快慢指针,快指针走两步,慢指针走一步,快指针走到结尾(链表结点数为奇数)或者为空(链表结点数为偶数)时,慢指针达到中间结点(结点数为奇)或头半段的最后一个结点(结点数为偶数),将后半部份的链表逆序,然后和前半部分进行比较就可以了。四、代码:/** * struct ListNode { * int val; * struct ListNode *next; *.

2021-08-26 17:28:30 112

原创 NC70 单链表的排序

一、题目:描述给定一个无序单链表,实现单链表的排序(按升序排序)。二、输入输出示例:三、代码:/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param head ListNode类 the head node * @return ListNode类 */ L

2021-08-26 16:37:53 72

原创 NC33 合并两个排序的链表

一、题目:描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。二、输入输出示例:三、代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode

2021-08-26 16:27:03 61

原创 NC53 删除链表的倒数第n个节点

一、题目:描述给定一个链表,删除链表的倒数第 nnn 个节点并返回链表的头指针例如,给出的链表为: 1→2→3→4→51\to 2\to 3\to 4\to 51→2→3→4→5, n=2n= 2n=2.删除了链表的倒数第 nnn 个节点之后,链表变为1→2→3→51\to 2\to 3\to 51→2→3→5.备注:题目保证 nnn 一定是有效的请给出时间复杂度为O(n)\ O(n)O(n) 的算法二、输入输出示例:三、代码:/** * struct ...

2021-08-25 21:26:41 33

原创 NC24 删除有序链表中重复的元素-II

一、题目:描述给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→51 \to 2\to 3\to 3\to 4\to 4\to51→2→3→3→4→4→5, 返回1→2→51\to 2\to51→2→5.给出的链表为1→1→1→2→31\to1 \to 1\to 2 \to 31→1→1→2→3, 返回2→32\to 32→3.二、输入输出示例:三、代码:/** * struct ListNod

2021-08-25 20:10:40 51

原创 NC50 链表中的节点每k个一组翻转

一、题目:描述将给出的链表中的节点每k\ kk 个一组翻转,返回翻转后的链表如果链表中的节点数不是k\ kk 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 O(1)\ O(1)O(1)例如:给定的链表是1→2→3→4→51\to2\to3\to4\to51→2→3→4→5对于 k=2\ k = 2k=2, 你应该返回 2→1→4→3→52\to 1\to 4\to 3\to 52→1→4→3→5对于 k=3\ k = ...

2021-08-25 16:25:38 417

原创 NC3 链表中环的入口结点

一、题目:描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表返回值描述:返回链表的环的入口结点即可。而我们后台程序会打印这个节点二、输入输出示例:三、思路:用快慢指针,快指针走两格,慢指针走一格,快慢指针可以相遇,则有环,且相遇时,假设慢指针走了X+Y,X是表头到环入口结点的节点数,则快指针就走了2*(X+Y),两个指针相遇一定.

2021-08-25 14:27:37 37

原创 NC40 两个链表生成相加链表

一、题目:描述假设链表中每一个节点的值都在 0 - 9之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。例如:链表 1为 9->3->7,链表 2为 6->3,最后生成新的结果链表为 1->0->0->0。二、输入输出示例:三、思路:将两个链表反转,然后对齐,再逐项相加,注意进位问题。四、代码:/** * Definition for singly-linked list. * ...

2021-08-25 11:30:41 51

原创 NC4 判断链表中是否有环

一、题目:描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度O(1)的解法么?输入分为2部分,第一部分为链表,第二部分代表是否有环,然后回组成head头结点传入到函数里面。-1代表无环,其他的数字代表有环,这些参数解释仅仅是为了方便读者自测调试二、输入输出示例:三、思路:用快慢指针来实现,即快指针每次走两个结点,满指针每次走一个结点,如果快满指针可以相遇,则说明有环,否则无环。四、代码:/** * Definition f.

2021-08-25 10:07:02 39

原创 NC78 反转链表

一、题目:描述输入一个链表,反转链表后,输出新链表的表头。二、输入输出示例:三、代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* p1 =.

2021-08-23 10:16:22 39

原创 NC105 二分查找-II

一、题目:描述请实现有重复数字的升序数组的二分查找给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返回下标,否则返回 -1二、输入输出示例:三、代码:class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 如果目标值存在返回下标,否则返回 -1 .

2021-08-23 09:23:50 35

原创 华为机试:四则运算

一、题目:描述输入一个表达式(用字符串表示),求这个表达式的值。保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’,‘*’,‘/’,‘(’,‘)’,‘[’,‘]’,‘{’,‘}’。且表达式一定合法。输入描述:输入一个算术表达式输出描述:得到计算结果二、输入输出示例:三、思路:用栈,将中缀表达式转为后缀表达式,然后在计算后缀表达式的值。四、代码:#include<iostream>using namespace std;#...

2021-08-22 22:28:17 299

原创 华为机试:查找两个字符串a,b中的最长公共子串

一、题目:描述查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!本题含有多组输入数据!输入描述:输入两个字符串输出描述:返回重复出现的字符二、输入输出示例:三、思路:固定最小的字符串,然后遍历另一个字符串,比较字符是否相同,相同则继续向下比并记录相同子串的字符数量;不同则继续遍历另一个字符串,同样比较最小字符串的字符是否与另一个字符串的后序

2021-08-21 21:07:10 175

原创 华为机试:MP3光标位置

一、题目:二、输入输出示例:三、代码:#include<iostream>using namespace std;#include<string>int main(){ int N; string s; while (cin >> N >> s) { int list[4]; //创建显示屏数组 int flag = 1; //光标初始化为1 for (int i = 0; i < 4.

2021-08-21 13:22:15 53

原创 华为机试:DNA序列

一、题目:描述一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及限定的子串长度N,请帮助研究人员在给出的DNA序列中从左往右找出GC-Ratio最高且长度为N的第一个子串。DNA序列为ACGT的子串有:ACG,CG,CGT等等,但是没有AGT,CT等等输入描述:输入一

2021-08-21 09:42:17 173

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除