深圳微商城网站设计多少钱,网站建设问题,简单介绍家乡网页html代码,河南住房和城乡建设部网站华为2014校园招聘的机试题目和2013年的完全一样。 一、题目描述#xff08;60分#xff09;#xff1a; 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序#xff0c;若字符串中出现多个相同的字符#xff0c;将非首次出现的字符过滤掉。 比如字符串… 华为2014校园招聘的机试题目和2013年的完全一样。 一、题目描述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” 注格式错误 [cpp] view plaincopy #includestdio.h #includestring.h #includestdlib.h #define MAXCHAR 256 void stringFilter(const char* pInputStr , long lInputLen , char* pOutputStr) { bool hash[26] {0}; //统计字符是否出现 int i , j; for(i 0 , j 0 ; i lInputLen; i) { if(false hash[pInputStr[i] - a]) //该字符还木有出现过 { hash[pInputStr[i] - a] true; pOutputStr[j] pInputStr[i]; } } pOutputStr[j] \0; } void stringZip(const char* pInputStr , long lInputLen , char* pOutputStr) { int i , j , k , num; char buffer[20]; for(i 0 , k 0; i lInputLen; ) { num 0; for(j i 1 ; j lInputLen ; j) { if(pInputStr[i] pInputStr[j]) //统计字符串中每个字符后面连续出现的重复字母次数 num; else break; }//for if(0 ! num) //num可能是两位或三位或更多位的整数 { memset(buffer , 0 , sizeof(buffer)); itoa(num 1 , buffer , 10); //将整数按10进制转换为字符串 strcpy(pOutputStr k , buffer); k strlen(buffer); } pOutputStr[k] pInputStr[i]; i i num 1; }//for pOutputStr[k] \0; } void arithmetic(const char* pInputStr , long lInputLen , char* pOutputStr) { int i , j , num1 , num2 , result , num_space; char buffer[4]; bool add , sub; add sub false; for(i 0 , num_space 0 ; i lInputLen ; i) { if(pInputStr[i] ) num_space; } if(2 ! num_space) //空格数非法 { pOutputStr[0] 0; pOutputStr[1] \0; return ; } num1 num2 0; for(i 0 ; pInputStr[i] ! ; i) { if(pInputStr[i] 0 pInputStr[i] 9) num1 num1 * 10 pInputStr[i] - 0; else //第一个操作数中有非法字符 { pOutputStr[0] 0; pOutputStr[1] \0; return ; } } for(j i 1 ; pInputStr[j] ! ; j); if(1 ! j - i - 1) //运算符长度不合法 { pOutputStr[0] 0; pOutputStr[1] \0; return ; } else //操作符的长度为1 { if( ! pInputStr[i1] - ! pInputStr[i1]) //操作符号非法 { pOutputStr[0] 0; pOutputStr[1] \0; return ; } else { if( pInputStr[i1]) add true; if(- pInputStr[i1]) sub true; for(i j 1 ; i lInputLen ; i) { if(pInputStr[i] 0 pInputStr[i] 9) num2 num2 * 10 pInputStr[i] - 0; else //第二个操作数中有非法字符 { pOutputStr[0] 0; pOutputStr[1] \0; return ; } }//for if(add) result num1 num2; else if(sub) result num1 - num2; memset(buffer , 0 , sizeof(buffer)); itoa(result , buffer , 10); //将整数按10进制转换为字符串 strcpy(pOutputStr , buffer); }//esle }//else } int main(void) { printf( -- 2014年华为校园招聘机试题 (http://blog.csdn.net/hackbuteer1) --\n\n); char pInputStr1[] {aaabbbcccdde}; char pInputStr2[] {aaaaaaaaaaaabbcddddddddddddddddde}; char pInputStr3[] {3 4}; char pOutputStr1[MAXCHAR] {0}; char pOutputStr2[MAXCHAR] {0}; char pOutputStr3[MAXCHAR] {0}; stringFilter(pInputStr1 , strlen(pInputStr1) , pOutputStr1); stringZip(pInputStr2 , strlen(pInputStr2) , pOutputStr2); arithmetic(pInputStr3 , strlen(pInputStr3) , pOutputStr3); puts(pOutputStr1); puts(pOutputStr2); puts(pOutputStr3); return 0; } 原文地址http://blog.csdn.net/hackbuteer1/article/details/11132567