
C++面试
汇总C++面试问题
-兮
Holly
展开
-
华为OD技术一面字符串题
/* * 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。如:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。*/#include <iostream>#include <string>using namespace std;int func(string str) { if (0 == str.size()) return 0; string res, ret;原创 2022-05-22 08:19:49 · 855 阅读 · 0 评论 -
C++实现:已知先序遍历和中序遍历,求后序遍历
///已知先序遍历和中序遍历,求后序遍历#include <iostream>#include <cstring>using namespace std;char preorder[101], inorder[101]; //先序遍历 中序遍历//@params: preL-先序遍历左区间//preR-先序遍历右区间//inL-中序遍历左区间//intR-中序遍历右区间void func(int preL, int preR, int inL, int inR)原创 2022-04-13 18:01:20 · 3313 阅读 · 1 评论 -
启发式搜索 -- 优先队列priority_queue
C++ 启发式搜索 – 优先队列priority_queue广搜会四面八方搜索很多无用路径,用启发式搜索解决只向目标方向进行搜索,避免四面八方搜索实现:1)起点开始搜索。 2)预估到终点的距离#include <iostream>#include <queue>#include <cmath>using namespace std;char mmap[105][105]; //地图大小int cnt, //记录目前为止搜过了多少个点n, m,原创 2021-10-26 16:27:43 · 473 阅读 · 0 评论 -
欧拉计划13: 大和 Large sum
题目描述求以下一百个50位数之和的前十位数字。Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.3710728753390210279879799822083759024651013574025046376937677490009712648124896970078050417018260538743249861995247410594742333095130581237.原创 2021-07-08 10:54:45 · 161 阅读 · 0 评论 -
欧拉计划30: 各位数字的五次幂 Digit fifth powers
题目描述结果#include<iostream>#include<cmath>using namespace std;int num[10] = {0, 1, (int)pow(2, 5), (int)pow(3, 5), (int)pow(4, 5), (int)pow(5, 5), (int)pow(6, 5), (int)pow(7, 5), (int)pow(8, 5), (int)pow(9, 5)};bool func(int x) { .原创 2021-07-05 15:28:37 · 251 阅读 · 0 评论 -
欧拉计划33: 消去数字的分数 Digit cancelling fractions
题目描述结果#include<iostream>using namespace std;bool func(int a, int b) { //a分子 b分母 int n1 = a / 10, n2 = a % 10; int m1 = b / 10, m2 = b % 10; if (!n2 || !m2) return false; if((n1 == m1 && a * m2 == b * n2) || .原创 2021-07-05 14:42:25 · 185 阅读 · 0 评论 -
欧拉计划32: 全数字的乘积 Pandigital products
题目描述结果原创 2021-07-05 14:09:05 · 176 阅读 · 0 评论 -
欧拉计划18: 最大路径和 I (Maximum path sum I)
题目描述结果#include<iostream>using namespace std;int num[20][20], dp[20][20];int main() { //第一种 从上往下 int res = 0; for (int i = 1; i < 16; ++i) for (int j = 1; j <= i; ++j) { cin >> num[i][j]; .原创 2021-07-05 13:44:15 · 207 阅读 · 0 评论 -
欧拉计划15: 网格路径 Lattice paths
题目描述结果#include<iostream>using namespace std;long long dp[25][25];int main() { for (int i = 1; i <= 21; ++i) for (int j = 1; j <=21; ++j) if (1 == i && 1 == j) dp[i][j] = 1; else dp[i][.原创 2021-07-05 13:43:34 · 213 阅读 · 0 评论 -
欧拉计划11: 方阵中的最大乘积 Largest product in a grid
题目描述结果#include<iostream>using namespace std;int num[30][30], ans;int dirx[4] = {-1, 0, 1, 1};int diry[4] = {1, 1, 1, 0};int main() { for (int i = 5; i < 25; ++i) for (int j = 5; j < 25; ++j) cin >> .原创 2021-07-02 11:15:42 · 152 阅读 · 0 评论 -
欧拉计划8: 连续数字最大乘积 Largest product in a series
题目描述结果#include<iostream>using namespace std;char str[10005];int main() { cin >> str; long long ans = 1, zero = 0, now = 1; for (int i = 0; i < 1000; ++i) { if (i < 13) now *= str[i] - '0'; .原创 2021-07-02 11:13:23 · 114 阅读 · 0 评论 -
欧拉计划36: 双进制回文数 Double-base palindromes
题目描述结果#include<iostream>using namespace std;bool func(int x, int n) { int t = 0, raw = x; while (x) { t = t * n + x % n; x /= n; } return t == raw;}int main() { int ans = 0; for (int i = 1; i <.原创 2021-07-02 11:11:23 · 195 阅读 · 0 评论 -
欧拉计划6: 平方的和与和的平方之差 Sum square difference
题目描述结果#include<iostream>using namespace std;int main() { int sum = 0, psum = 0; for (int i = 1; i < 101; ++i) { sum += i; psum += i * i; } cout << sum * sum - psum << endl; return 0;}.原创 2021-07-02 11:09:38 · 186 阅读 · 0 评论 -
欧拉计划4: 最大回文乘积 Largest palindrome product
题目描述结果#include<iostream>using namespace std;bool func(int x) { int t = 0, raw = x; while (x) { t = t * 10 + x % 10; x /= 10; } return t == raw;}int main() { int ans = 0; for (int i = 100; i < .原创 2021-07-02 11:07:41 · 125 阅读 · 0 评论 -
欧拉计划2: 偶斐波那契数 Even Fibonacci numbers
题目描述结果#include<iostream>using namespace std;//int num[4000005] = {1, 2};int main() { /* long long ans = 2; for (int i = 2; 1; ++i) { num[i] = num[i - 1] + num[i - 2]; if (num[i] % 2 == 0) { ans += n.原创 2021-07-02 11:05:50 · 148 阅读 · 0 评论 -
欧拉计划1: 3或5的倍数 Multiples of 3 and 5
题目描述结果#include<iostream>using namespace std;int main() { /* int ans = 0; for (int i = 1; i < 1000; ++i) { if (i % 3 == 0 || i % 5 == 0) { ans += i; } } cout << ans << endl;*/.原创 2021-07-02 11:03:22 · 89 阅读 · 0 评论 -
欧拉计划14 最长考拉兹序列 Longest Collatz sequence
题目描述用 记忆数组+递归 时间复杂度约等于 递推#include<iostream>using namespace std;int num[10000005];int func(long long x) { if (1 == x) return 1; if (x < 10000000 && num[x]) return num[x]; int t = 0; if (x % 2 == 0) t = func(x / .原创 2021-07-02 10:59:05 · 263 阅读 · 0 评论 -
输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数 - 牛客网华为机试中等难度
题目描述输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。/**统计出英文字母字符的个数。@param str 需要输入的字符串@return 英文字母的个数*/public static int getEnglishCharCount(String str){return 0;}/**统计出空格字符的个数。@param str 需要输入的字符串@return 空格的个数*/public static int getBlankCharCount(..原创 2020-09-08 23:26:36 · 1553 阅读 · 0 评论 -
求小球落地5次后所经历的路程和第5次反弹的高度 - 牛客网华为机试中等难度
题目描述假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?最后的误差判断是小数点6位输入描述:输入起始高度,int型输出描述:分别输出第5次落地时,共经过多少米第5次反弹多高示例1输入1输出2.8750.03125结果#include <bits/stdc++.h>using namespace std;int main(){ int num, k = 4; ..原创 2020-09-08 23:02:49 · 169 阅读 · 0 评论 -
字符串加密 - 牛客网华为机试中等难度
题目描述有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,其余几个丢弃。现在,修改过的那个单词属于字母表的下面,如下所示:A B C D E F G H I J K L M N O P Q R S T U V W X Y ZT R A I L B Z E S C D F G H J K M N O P Q U V W X Y上面其他用字母表中剩余的字母填充完整。在对信息进行.原创 2020-09-06 23:26:30 · 278 阅读 · 2 评论 -
蛇形矩阵 - 牛客网华为机试中等难度
题目描述题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211接口说明原型void GetResult(int Num, char * pResult);输入参数: int Num:输入的正整数N输出参数: int * pResult:指向存放蛇形矩阵的字符串指针 指针指向的内存区域保证有效返回值: void输入描述:输入正整数N(N不大于..原创 2020-09-03 22:34:52 · 211 阅读 · 0 评论 -
图片整理 - 牛客网华为机试中等难度
题目描述Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。输入描述:Lily使用的图片包括"A"到"Z"、“a"到"z”、“0"到"9”。输入字母或数字个数不超过1024。输出描述:Lily的所有图片按照从小到大的顺序输出示例1输入Ihave1nose2hands10fingers输出0112Iaadeeefghhinnnorsssv结果用C++实现#..原创 2020-09-03 19:54:56 · 1042 阅读 · 0 评论 -
字符串排序 - 牛客网华为机试中等难度
题目描述编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y注意有多组测试数据,即输入有多行,每一行单独处理(换行符隔开的表示不同行)输入描述:输入字符串输出描述:输出字符串示例1输入A F..原创 2020-09-03 19:47:25 · 138 阅读 · 0 评论 -
简单密码 - 牛客网华为机试中等难度
题目描述密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母: 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–..原创 2020-09-03 16:49:18 · 363 阅读 · 0 评论 -
字串的连接最长路径查找 - 牛客网华为机试中等难度
题目描述给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。示例1输入9captocatcardtwotooupboatboot输出boatbootcapcardcattotootwoup结果刚开始以为输入的字符串没有重复的,使用了STL的set,通过率60%,.原创 2020-09-02 13:05:47 · 134 阅读 · 0 评论 -
字符个数统计 - 牛客网华为机试中等难度
题目描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次输入abaca输出3输入描述:输入N个字符,字符在ACSII码范围内。输出描述:输出范围在(0~127)字符的个数。示例1输入abc输出3结果直接用了STL的set集合#include <bits/stdc++.h>using namespace std;int..原创 2020-09-01 15:49:12 · 131 阅读 · 0 评论 -
提取不重复的整数 - 牛客网华为机试中等难度
题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入9876673输出37689结果#include <bits/stdc++.h>using namespace std;int main(){ int num; cin >> num; vector<int&g..原创 2020-09-01 15:26:54 · 138 阅读 · 0 评论 -
合并表记录 - 牛客网华为机试中等难度
题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入40 10 21 23 4输出0 31 23 4结果使用了STL的MAP#include <bits/stdc++.h>using namespace std;..原创 2020-09-01 15:10:00 · 159 阅读 · 0 评论 -
取近似值 - 牛客网华为机试入门难度
题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值示例1输入5.5输出6结果#include <bits/stdc++.h>using namespace std;int main(){ double num; cin >> num; int res = num; ..原创 2020-09-01 11:53:12 · 166 阅读 · 0 评论 -
质数因子 - 牛客网华为机试中等难度
题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。示例1输入180输出2 2 3 3 5结果直接一次过了#include <bits/stdc++.h>using namespace std;bool isPrime(l..原创 2020-09-01 11:26:09 · 130 阅读 · 0 评论 -
进制转换 - 牛客网华为机试中等难度
题目描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。示例1输入0xA输出10结果需要了解cin >> hex >> num;#include <bits/stdc++.h>using namespace std;int main(){ int num; while(cin >>..原创 2020-09-01 11:02:51 · 173 阅读 · 1 评论