华为2014机试题目

2014年华为校园招聘机试题目 华为2014校园招聘的机试题目和2013年的完全一样。 一、题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInputL 阅读详情
一、题目描述(60分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr:  输入字符串
            lInputLen:  输入字符串长度         
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例 
输入:“deefd”        输出:“def”
输入:“afafafaf”     输出:“af”
输入:“pppppppp”     输出:“p”
main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。
 
二、题目描述(40分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
要求实现函数: 
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr:  输入字符串
            lInputLen:  输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例 
输入:“cccddecc”   输出:“3c2de2c”
输入:“adef”     输出:“adef”
输入:“pppppppp” 输出:“8p”
三、题目描述(50分): 
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数: 
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr:  输入字符串
            lInputLen:  输入字符串长度         
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例 
输入:“4 + 7”  输出:“11”
输入:“4 - 7”  输出:“-3”
输入:“9 ++ 7”  输出:“0” 注:格式错误

  1. #include <cstring>  
  2. #include <iostream>  
  3.   
  4. using namespace std;  
  5. //题目一  
  6. void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)  
  7. {  
  8.     bool hash[26] = {0};    //统计字符是否出现,这个想法很好哟    
  9.     int i , j;    
  10.     for(i = 0 , j = 0 ; i < lInputLen; i++)    
  11.     {    
  12.         if(false == hash[pInputStr[i] - 'a'])     //该字符还木有出现过    
  13.         {    
  14.             hash[pInputStr[i] - 'a'] = true;    
  15.             pOutputStr[j++] = pInputStr[i];    
  16.         }    
  17.     }    
  18.     pOutputStr[j] = '\0';    
  19. }  
  20. //题目二第一种解法  
  21. void stringZip1(const char* pInputStr , long lInputLen , char* pOutputStr)    
  22. {    
  23.     int i , j , k , num;    
  24.     char buffer[20];    
  25.     for(i = 0 , k = 0; i < lInputLen; )    
  26.     {    
  27.         num = 0;    
  28.         for(j = i + 1 ; j < lInputLen ; ++j)    
  29.         {    
  30.             if(pInputStr[i] == pInputStr[j])     //统计字符串中每个字符后面连续出现的重复字母次数    
  31.                 ++num;    
  32.             else    
  33.                 break;    
  34.         }//for    
  35.         if(0 != num)    //num可能是两位或三位或更多位的整数    
  36.         {    
  37.             memset(buffer , 0 , sizeof(buffer));//将数组元素全部用0代替    
  38.             itoa(num + 1,buffer,10);      //将整数按10进制转换为字符串    
  39.             strcpy(pOutputStr + k , buffer);    
  40.             k += strlen(buffer);    
  41.         }    
  42.         pOutputStr[k++] = pInputStr[i];    
  43.         i = i + num + 1;    
  44.     }//for    
  45.     pOutputStr[k] = '\0';    
  46. }    
  47. //题目二第二种解法  
  48. void stringZip2(const char *pInputStr, long lInputLen, char *pOutputStr)    
  49. {       
  50.     if(lInputLen == 1)    
  51.     {    
  52.         pOutputStr[0] = pInputStr[0];    
  53.         pOutputStr[1] = 0;    
  54.         return;    
  55.     }    
  56.   
  57.     char chPre = pInputStr[0];    
  58.     int count = 1;    
  59.     int outIndex = 0;    
  60.     char tmp[100];    
  61.     for(size_t i = 1 ;i <= lInputLen ;i++)    
  62.     {    
  63.         if(pInputStr[i] != chPre)    
  64.         {    
  65.             if(count == 1)    
  66.                 pOutputStr[outIndex++] = chPre;    
  67.             else    
  68.             {    
  69.                 sprintf(tmp ,"%d%c" ,count ,chPre);//这两个函数值得学习   
  70.                 strcpy(pOutputStr + outIndex ,tmp);         
  71.                 outIndex += strlen(tmp);    
  72.             }    
  73.             chPre = pInputStr[i];    
  74.             count = 1;    
  75.         }    
  76.         else    
  77.         {    
  78.             count++;    
  79.         }    
  80.     }    
  81.     pOutputStr[outIndex] = '\0';    
  82. }    
  83. //题目三  
  84. void arithmetic(const char* pInputStr , long lInputLen , char* pOutputStr)    
  85. {    
  86.     int i,j,num1,num2,result,num_space;  
  87.     char buffer[4];  
  88.     bool add=false,dec=false;  
  89.     for (i=0,num_space=0;i<lInputLen;i++)  
  90.     {  
  91.         if(pInputStr[i]==' ')  
  92.             num_space++;  
  93.     }  
  94.     if (2!=num_space)//如果空格数不等于2  
  95.     {  
  96.         pOutputStr[0]='0';  
  97.         pOutputStr[1]='\0';  
  98.         return;  
  99.     }  
  100.     num1=num2=0;  
  101.     for (i=0;pInputStr[i]!=' ';i++)  
  102.     {  
  103.         if (pInputStr[i]>='0'&&pInputStr[i]<='9')  
  104.             num1=num1*10+pInputStr[i]-'0';  
  105.         else    //如果操作数非法  
  106.         {  
  107.             pOutputStr[0]='0';  
  108.             pOutputStr[1]='\0';  
  109.             return;  
  110.         }  
  111.     }  
  112.     if (pInputStr[i+2]!=' ')//如果第一个操作符右边不是空格符  
  113.     {  
  114.         pOutputStr[0]='0';  
  115.         pOutputStr[1]='\0';  
  116.         return;  
  117.     }  
  118.     else   
  119.     {  
  120.         if ('+'==pInputStr[i+1])  
  121.             add=true;  
  122.         else if ('-'==pInputStr[i+1])  
  123.             dec=true;  
  124.         for (i+=3;i<lInputLen;i++)  
  125.         {  
  126.             if (pInputStr[i]>='0'&&pInputStr[i]<='9')  
  127.                 num2=num2*10+pInputStr[i]-'0';  
  128.             else    //如果操作数非法  
  129.             {  
  130.                 pOutputStr[0]='0';  
  131.                 pOutputStr[1]='\0';  
  132.                 return;  
  133.             }  
  134.         }  
  135.         if(add)  
  136.             result=num1+num2;  
  137.         else  
  138.             result=num1-num2;  
  139.         memset(buffer , 0 , sizeof(buffer));//很实用的几个函数   
  140.         itoa(result,buffer,10);  
  141.         strcpy(pOutputStr,buffer);  
  142.     }  
  143. }    
  144.   
  145. int main()  
  146. {  
  147.     cout<<"华为2014机试题目.......""只为学习....."<<endl;  
  148.       
  149.     char inputstr[256];  
  150.     char outputstr[256];  
  151.     cout<<"请输入一串字符串"<<endl;  
  152.     cin.getline(inputstr,256);  
  153.     //题目一  
  154.     //stringFilter(inputstr,strlen(inputstr),outputstr);  
  155.     //题目二  
  156.     //stringZip1(inputstr,strlen(inputstr),outputstr);  
  157.     //stringZip2(inputstr,strlen(inputstr),outputstr);  
  158.     //题目三  
  159.     arithmetic(inputstr,strlen(inputstr),outputstr);  
  160.       
  161.     cout<<outputstr<<endl;  
  162.   
  163.       
  164.   
  165.     system("pause");  
  166.     return 1;  
  167. }  
  168.   
  169.   
  170. 参考原文地址:http://blog.youkuaiyun.com/hackbuteer1/article/details/11132567 
2014年华为校招机试题目 /* 2014年华为校招机试题目     通过键盘输入一串小写字母(a~z)组成的字符串。 请编写一个字符串压缩程序,将字符串中连续出席的重复 字母进行压缩,并输出压缩后的字符串。     压缩规则:  1.仅压缩重复出现的字符。比如字符串“abcbc”由于无 连续重复字符,压缩后的字符串还是“abcabc”.  2.压缩字段的格式为“字符重复的次数+字符”。例如: 字符串“xx 阅读详情

相关推荐

[C/C++]2014年7月华为校招机试真题(一)

同学昨天参加华为软件机试回来

zombie_slicer的专栏 1万+

华为机试刷题

服务器广播 题目:服务器连接方式包括直接相连,间接连接。 A 和 B 直接连接, B 和 c 直接连接,则 A 和 c 间接连接。直接连接和间接连接都可以发送广播。 给出一个 N * N 数组,代表 N 个服务器, matrix[i][j] == 1 ,则代表 i 和 j 直接连接;不等于 1 时,代表 i 和 j 不直接连接。 matrix[i][i]== 1 ,即自己和自己直接连接。 matr...

lyh_xd 9274

别再只用真彩色了!手把手教你用ENVI主成分分析(PCA)给遥感图像‘美颜’与‘瘦身’

本文详细介绍了如何利用ENVI主成分分析(PCA)技术优化遥感图像处理,实现数据‘美颜’与‘瘦身’。通过PCA的维度压缩、噪声分离和特征增强三大优势,显著提升高光谱数据的可视化效果和分析效率。文章还提供了ENVI操作的最佳实践和常见问题解决方案,帮助读者掌握这一遥感图像处理的游戏规则改变者。

weixin_28465009的博客 277

机试题目

给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个,例如:“ i am a little boy. ”变成“i am a little boy.”语言不限。/*#include<iostream> using namespace std; void fun(char s[],int k,int m,i

chencong125的博客 485

Windows下玩转DeepSeek-R1:Ollama+Docker配置RAGFlow的3种网络调试方案

本文详细介绍了在Windows环境下使用Ollama和Docker配置RAGFlow的三种网络调试方案,帮助开发者解决本地部署AI知识库系统时的网络隔离问题。通过host.docker.internal直连、自定义Docker网桥网络和端口映射与反向代理三种方法,实现DeepSeek-R1模型与RAGFlow的高效通信,提升本地AI应用的开发效率。

weixin_28347369的博客 247

双目视觉入门实战:用Matlab标定相机,再到Python OpenCV完成测距的完整链路

本文详细介绍了双目视觉技术的完整实现流程,从Matlab相机标定到Python OpenCV测距的全链路实践。重点解析了Matlab与OpenCV的参数转换技巧,以及立体校正、视差计算等关键步骤的代码实现,帮助开发者快速掌握双目测距系统的搭建方法。

weixin_29166013的博客 448

华为机试网测题目总结2014/9/12提前批

吐槽的很久的华为,zongyu

harrykate的专栏 3468

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

华为2014校园招聘的机试题目

华为2014校园招聘的机试题目和2013年的完全一样。 一、题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInpu

chenkun5885的专栏 941

Arduino Uno R3开发板系列学习教程(番外篇:USB驱动安装与疑难排解)

本文详细介绍了Arduino Uno R3开发板USB驱动安装与疑难排解的完整指南,特别针对国产克隆版常见的CH340驱动问题提供解决方案。从识别开发板类型到Windows/Mac系统驱动安装步骤,再到常见问题排查与高级排错技巧,帮助开发者快速解决连接问题,确保程序烧录顺利进行。

weixin_29182481的博客 587

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3766

2014华为机试题目

1.输入摸一个数,然后将其倒过来相加,如果和不是回文串,那么将和再采取同样的操作,在判断得到的是否为回文串,这样往返7次,如果其中有一次是回文就直接打出来,若都没有,那么输出0; 也很简单!用库函数更简单,itoa这个!整数转成字符,然后判断回文! 2.关于匹配的字符串的个数的最大值,即目标字符串与多个字符串比配,找出匹配最多的那个字符串。 其实代码很简单,我当时用2个数组,下标即为字符,值

生命不息 奋斗不止 | LINUX爱好者 世界因你的敲打而改变~~ 5535

50、压电微泵与技术设备驱动的研究分析

本文研究了压电微泵在弹性微通道中的流体流动特性及技术设备驱动的振动行为。通过建立轴对称流固耦合模型,利用FreeFem++进行数值模拟,分析了不同数量压电致动器和频率对微泵流量的影响,发现多个致动器按特定时序压缩可产生净正向流量,并提出了稳态流量的近似解析公式。同时,针对技术设备驱动系统,探讨了周期性负载引起的强迫振动特性,明确了共振条件及影响因素,并比较了主动、被动和优化设计等振动控制策略。最后展望了实验验证、多物理场耦合与智能控制等未来研究方向,为相关设备的优化设计与高效运行提供了理论支持。

convnet3designer的博客 148

9月5日,华为2014校园招聘的机试题目

9月5日,华为2014校园招聘的机试题目 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:     1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。     2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyy

vivo133的专栏 768

嵌入式工程师成长之路(5)——板子调试

USB2514集线器调试总结说说USB连接线USB数据线上的“疙瘩”:原来有这么大用处!

云轩阁 4万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

华为2014春季校园招聘粤港澳考场机试题目

下午刚刚参加完华为春季校园招聘的机试考试,总共三道题目,先贴出题目。 第一题: 输入一个整形数据,判断该数据是否是回文,是则返回1,不是返回0。 第二题: 给定一个字符串,将其中出现频率最小的字母删除,返回修改后的字符串。 第三题: 给定一个英文文本,单词之间只以空格和英文逗号(,)和英文句号(.)隔开。忽略字母的大小写,请给出文本中出现频率最高的单词和出现频率第二高的单词。...

DR的专栏 261

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

字符串通配符匹配-2014华为机试题目

题目:子串匹配母串,如果匹配,输出子串匹配的起始位置,否则输出-1。?可以代表一个字符,*代表一个或者多个。 从键盘输入,先输入子串,再输入母串。子串母串长度均小于20。运行时间和内存无限制。 一开始打开用KMP或BM算法来做,考试电脑可以上网,可以去查,但是子串有了通配符,next函数好像无法求(还没想到),所以暴力求解,可惜当时没调试出来。 思路:用一个find函数来找。 in

KangRoger的专栏 2245

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2014年华为上机机试c语言题目和答案

自己code出来的,结果是正确的,但是其中还有很多的优化之处,还请各位大神多多指导。 1.字符串过滤 stringFilter 去重过滤,例子: "abcdabefe"-->"abcdef" 2.字符串压缩 stringZip "aaaabbccccddeeeeef"-->"4a2b4c2d5ef" 3.表达式,100以内的正整数,加减运算 "4 + 7"-->"11" "2 - 7"-->"-5" "2 ++ 7"-->"0" //注意:非法运算

sxlwzl的专栏 2107

华为2014校园招聘的机试题目解答——字符串压缩

题目来源:JULY博客 http://blog.youkuaiyun.com/v_july_v/article/details/11921021 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:     1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc

axiaochong的专栏 1702

2014届华为校园招聘机试题

2014年华为校园招聘机试题 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。

Hackbuteer1的专栏 5万+

华为2014机试题

华为2014年机试题1:输入1--50个数字,求出最小数和最大数的和,输入以逗号隔开(c语言) #include #include #include #define N 50 void readStr(char **); void getArray(const char * ,int *,double []); void sort(double [],int); int main()

飞个不停 1329

2014华为机试西安地区B组试题

2014华为机试西安地区B组试题 题目一、亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。 有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第

Voidwalkerxiaohui 3075

用c语言实现相机坐标的过滤,华为2014年机试题【字符串过滤】-【C语言/C++】

一、灵感来源2013-09-17 | 题目来源http://blog.youkuaiyun.com/net_assassin/article/details/116608692013-09-17 | 答案来源http://blog.youkuaiyun.com/net_assassin/article/details/11660869二、题目华为2014年机试题2:通过键盘输入一串小写字母(a~z)组成的字符串。请编...

weixin_29905347的博客 130
上一篇: 强大的vim配置文件,让编程更随意
下一篇: Linux多线程编译中为什么说pthread_create未定义
root654321
博客等级 码龄15年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值