2014届华为校园招聘机试题2
来源:互联网 发布:淘宝 发卡 编辑:程序博客网 时间:2024/06/06 13:14
第一题、输入一个正整数,并编码为字符串进行输出
描述: 1、输入一个正整数,并编码为字符串进行输出。
编码规则为:数字0-9分别编码为字符a-j
2、输入肯定是正整数,不用做错误较验
运行时间限制: 无限制
内存限制: 无限制
输入: 正整数
输出: 字符串
样例输入: 123
样例输出: bcd
#include <iostream>using namespace std;void int2str(int n,char* str){ if (str==NULL) { return ; } int i=0; char temp[20]; while (n) { temp[i++]='a'+n%10; n/=10; } temp[i]='\0'; i--; int j=0; while (i>=0) { str[j++]=temp[i--]; } str[j]='\0';}void main(){ int n; cin>>n; char a[20]; int2str(n,a); cout<<a<<endl;}
第二题、
通过键盘输入一串小写字母(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打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。
/***************************************************************通过键盘输入一串小写字母(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打印输出当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。*************************************************************/#include <iostream>#include <cstring>#include <algorithm>#include <string>#include <iterator>using namespace std;void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr){ if (pInputStr==NULL||lInputLen<1) { return; } int n=0;//用来存储当前pOutputStr一共从pInputStr获得多少元素 for (int i=0;i<lInputLen;i++) { if (i==0) { pOutputStr[n++]=pInputStr[i]; } else { int flag=0; for (int j=0;j<n;j++) { if (pInputStr[i]==pOutputStr[j]) { flag=-1; break; } } if (flag==0) { pOutputStr[n++]=pInputStr[i]; } } }pOutputStr[n]='\0';}void stringFilter2(const char *pInputStr, long lInputLen, char *pOutputStr)//lInputLen指不包含'\0'的个数//第二种写法,来自http://blog.csdn.net/net_assassin/article/details/11660869{ bool g_flag[26]={0}; if (pInputStr==NULL||lInputLen<1) { return; } int i=0; while (*pInputStr!='\0') { if (g_flag[*pInputStr-'a']) { pInputStr++; } else { pOutputStr[i++]=*pInputStr; g_flag[*pInputStr-'a']=1; pInputStr++; } } pOutputStr[i]='\0';}//第三种写法void stringFilter3(const char *pInputStr, long lInputLen, char *pOutputStr){ // 去除重复字符并排序的字符串,这个程序最终对所有的元素重新做了排序,如果没有要求排序,则使用前两种方法。 if (pInputStr==NULL||lInputLen<1) { return; } string str; copy(pInputStr,pInputStr+lInputLen,back_inserter(str)); sort(str.begin(),str.end()); str.erase(unique(str.begin(),str.end()),str.end()); strcpy(pOutputStr,str.c_str());}////void main()//{// char *pInputStr="deefd";// long lInputLen=strlen(pInputStr);// char *pOutputStr=new char[lInputLen+1];// stringFilter(pInputStr,lInputLen,pOutputStr);// cout<<"result is"<<endl;// cout<<pOutputStr<<endl;// delete[] pOutputStr;//}void main(){ char *pInputStr="abacacde"; long lInputLen=strlen(pInputStr); char *pOutputStr=new char[lInputLen+1]; stringFilter3(pInputStr,lInputLen,pOutputStr); cout<<"result is"<<endl; cout<<pOutputStr<<endl; delete[] pOutputStr;}
0 0
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题
- 2014届华为校园招聘机试题2
- OpenFlow标准分析
- ORA-01034: ORACLE not available
- Android Xutils 框架
- URAL1964:Chinese Dialects
- 湖南多校对抗赛(csu 1560)
- 2014届华为校园招聘机试题2
- Cookie验证
- Sublime Text 3 破解版 + 注册机 + 汉化包 + 教程
- Hadoop中Writable和WritableComparable区别
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- mysql递归查询树形表
- 使用Nexus搭建Maven代理仓库
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- Linux下objdump使用方法