华为笔试之字符串过滤
2014-04-09 11:56
183 查看
时间:2014.04.08
地点:基地二楼
说明:这些练习尽量按Google C++标准规范编写,环境 VS2013,语言:C++11
--------------------------------------------------------------------------------
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
--------------------------------------------------------------------------------
地点:基地二楼
说明:这些练习尽量按Google C++标准规范编写,环境 VS2013,语言:C++11
--------------------------------------------------------------------------------
一、题目
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
--------------------------------------------------------------------------------
二、完整代码
#include<iostream> #include<string> #include<map> using namespace std; string StringFilter(const string& str); //Precondition: //Postcondition: int main() { string input_str, out_str; cin >> input_str; out_str = StringFilter(input_str); cout << out_str << endl; return EXIT_SUCCESS; } string StringFilter(const string& str) { map<char, unsigned> character_count; string result_str, temp_str; for (auto ch : str) { if (character_count.find(ch) == character_count.end()) temp_str += ch; ++character_count[ch]; } for (auto ch : temp_str) result_str += ch; return result_str; }
相关文章推荐
- 华为笔试:删除字符串中出现次数最少的字符
- 华为机试题2014 字符串过滤程序 java实现
- 华为2014年机试题【字符串过滤】-【C语言/C++】
- 华为上机笔试之通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- [转]去掉字符串中重复的字符 --- 华为笔试题
- 华为笔试-字符串拆分和排序
- 华为2013校园招聘上机笔试题-对源字符串中的字符串进行查找替换
- 字符串识别和过滤_华为SO挑战赛初赛试题2015年8月
- 华为笔试题,关于操控字符串
- 2014华为机试之字符压缩字符过滤字符串加减法
- 华为2016笔试题(输入一个字符串,求出该字符串包含的字符集合)
- 华为2013校园招聘上机笔试题-数字转化为字符串,并判断有无重复字符串
- 2014华为实习上级笔试题-- 统计字符串中出现的单词
- 华为笔试1 去除重复字符并排序的字符串 c++ string 实现
- 华为笔试—在字符串A中删除字符串B中的全部字符
- 华为笔试之字符串旋转
- 去掉字符串中重复的字符 --- 华为笔试题
- 2014华为机试之字符压缩字符过滤字符串加减法
- 华为机试---字符串过滤
- 华为笔试题:递归打印输出子字符串