华为2012.09.03浙大机试题
2013-10-19 22:33
141 查看
转自:/article/5198801.html
1、
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
2、
通过键盘输入一串小写字母(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”
3、
通过键盘输入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 <iostream>
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
int target = 0;
int index = 0;
int j = 0;
for(int i = 0; i < lInputLen; ++i)
{
index = pInputStr[i] - 'a';
if((target >> index) & 1)
{
continue;
}
pOutputStr[j] = pInputStr[i];
target |= 1 << index;
j++;
}
memset(&pOutputStr[j], 0, lInputLen - j);
}
int main()
{
char a[] = "aaffddgghh";
char b[20];
//memset(b, 0, sizeof(b));
stringFilter(a, 7, b);
printf("%s\n", b);
return 0;
}
相关文章推荐
- 华为2012.09.03浙大机试题
- 华为2012.09.03浙大机试题
- 华为2012.09.03浙大机试题
- 华为2012.09.03浙大机试题 去掉字符串中的重复字符,字符串中重复字符的压缩,根据输入计算字符串结果
- 华为2014校园招聘的机试题目
- 2015届华为校园招聘机试题 C语言实现
- 2015届华为校园招聘机试题<第三题等式变换>
- 华为2017年大牛机试题—最长回文字符串
- 2013届华为校园招聘机试题
- 4000 华为机试题 计算下一秒
- 2014华为机试题
- 华为校招上机笔试试题(B卷)——java实现
- 华为机试题【12】-关灯泡
- 华为OJ平台试题 —— 字符串:名字的漂亮度
- 华为机试题:进制转换
- 关于华为2014年机试题3
- 华为OJ平台试题 ——数组:整形数组合并
- 华为机试题:字符串最后一个单词的长度
- 整数循环节求 4000 和-华为机试题
- 【华为上机试题C++】老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.