华为算法工程师笔试题

上传人:豆*** 文档编号:148462055 上传时间:2022-09-05 格式:DOCX 页数:16 大小:17.27KB
收藏 版权申诉 举报 下载
华为算法工程师笔试题_第1页
第1页 / 共16页
华为算法工程师笔试题_第2页
第2页 / 共16页
华为算法工程师笔试题_第3页
第3页 / 共16页
资源描述:

《华为算法工程师笔试题》由会员分享,可在线阅读,更多相关《华为算法工程师笔试题(16页珍藏版)》请在装配图网上搜索。

1、华为算法工程师笔试题华为算法工程师笔试题HCNA认证包括但不限于:网络基础学问,流行网络的基本连接方法,基本的网络建立,基本的网络故障解除,华为路由交换设备的安装和调试。下面是我收集的华为算法工程师笔试题,希望大家仔细阅读!1.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串;abacacde;过滤结果为;abcde;。要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); pInputStr:

2、输入字符串lInputLen: 输入字符串长度 pOutputStr: 输出字符串,空间已经开拓好,与输入字符串等长;只须要完成该函数功能算法,中间不须要有任何IO的输入输出示例输入:;deefd; 输出:;def;输入:;afafafaf; 输出:;af;输入:;pppppppp; 输出:;p;main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出当前你可以运用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以随意修改,但是不要变更函数原型。肯定要保证编译运行不受影响using namespace std;bool g_flag26;v

3、oid stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)assert(pInputStr != NULL);int i = 0;if (pInputStr = NULL | lInputLen <= 1)return;const char *p = pInputStr;while(*p != '0')if (g_flag(*p - 'a')p+;elsepOutputStri+ = *p;g_flag*p - 'a' = 1;p+;pOutputStr

4、i = '0'int main()memset(g_flag,0,sizeof(g_flag);char input = "abacacde"char *output = new charstrlen(input) + 1;stringFilter(input,strlen(input),output);cout<outputendl; /outputendl;delete output;return 0;2.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1

5、、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实现函数:void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr); pInputStr: 输入字符串lInputLen: 输入字符串长度 pOutputStr: 输出字符串,空间已经开拓好,与

6、输入字符串等长;只须要完成该函数功能算法,中间不须要有任何IO的输入输出示例输入:;cccddecc; 输出:;3c2de2c;输入:;adef; 输出:;adef;输入:;pppppppp; 输出:;8p;using namespace std;void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)const char *p = pInputStr;int num = 1;int i = 0;p+;while(*p != NULL)while(*p = *(p-1)&& *p != NUL

7、L)num+;p+;if (num > 1)int size = 0;int temp = num;while(num) /计算位数size+;num /= 10;num = 1;for (int j = size; j > 0; j-)pOutputStri+j-1 = '0'+ temp%10;temp /= 10;i +=size;pOutputStri+ = *(p-1);p+;elsepOutputStri+ = *(p-1);p+;pOutputStri = '0'int main()char input = "cccddecc

8、"char *output = new charstrlen(input) + 1;stringZip(input,strlen(input),output);cout<outputendl; /outputendl;return 0;3.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:;操作数1 运算符 操作数2;,;操作数;与;运算符;之间以一个空格隔开。补充说明:1、操作数为正整数,不须要考虑计算结果溢出的状况。2、若输入算式格式错误,输出结果为;0;。要求实现函数:void arithmetic(const char *

9、pInputStr, long lInputLen, char *pOutputStr); pInputStr: 输入字符串lInputLen: 输入字符串长度 pOutputStr: 输出字符串,空间已经开拓好,与输入字符串等长;只须要完成该函数功能算法,中间不须要有任何IO的输入输出示例输入:;4 + 7; 输出:;11;输入:;4 - 7; 输出:;-3;输入:;9 + 7; 输出:;0; 注:格式错误using namespace std;void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr)co

10、nst char *input = pInputStr;char *output = pOutputStr;int sum = 0;int operator1 = 0;int operator2 = 0;char *temp = new char5;char *ope = temp;while(*input != ' ') /获得操作数1sum = sum*10 + (*input+ - '0');input+;operator1 = sum;sum = 0;while(*input != ' ')*temp+ = *input+;input+;

11、*temp = '0'if (strlen(ope) > 1 )*output+ = '0'*output = '0'return;while(*input != '0') /获得操作数2sum = sum*10 + (*input+ - '0');operator2 = sum;sum = 0;switch (*ope)case '+':itoa(operator1+operator2,pOutputStr,10);break;case '-':itoa(operator1-

12、operator2,pOutputStr,10);break;default:*output+ = '0'*output = '0'return;int main()char input = "4 - 7"char output = " "arithmetic(input,strlen(input),output);cout<outputendl; /outputendl;return 0;4.输入1-50个数字,求出最小数和最大数的和void sort(int a,int n);int main(void)char

13、 str100;int aN=0;gets(str); /要点1:动态的输入1-50个整数,不能确定个数,只能用字符串输入,然后分别出来int i=0;int j=0;int sign=1;while(stri!='0')if(stri!=',') /输入时要在半角输入if(stri = '-') /要点:2:有负整数的输入/ i+; /易错点1sign=-1;else if(stri!='0') /不用else的话,负号也会减去‘0’aj=aj*10 + stri-'0' /要点3:输入的

14、可以是多位数i+;if(stri=',' | stri='0') /这个推断是在i自加以后aj=aj*sign; /易错点2sign=1; /易错点3j+; /j就是a数组的个数 范围0到j-1sort(a,j);printf("Max number + Min number = %d",a0+aj-1);return 0;void sort(int a,int n) /选择排序int i,j;int k;int temp;for(i=0;in-1;i+) /n-1;i+)k=i;for(j=i+1;jn;j+) /n;j+)if(ak>aj)k=j;if(i!=k)temp = ak;ak = ai;ai = temp;for(i=0;in;i+) /n;i+)printf("%-5d",ai);puts("");本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第16页 共16页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页第 16 页 共 16 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!