华为笔试题之字符串压缩
来源:互联网 发布:java b2b 开源 编辑:程序博客网 时间:2024/06/06 00:22
时间:2014.04.09
地点:基地二楼
说明:这些练习尽量按Google C++标准规范编写,环境 VS2013,语言:C++11
--------------------------------------------------------------------------------
一、题目
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".
2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"
示例
输入:“cccddecc” 输出:“3c2de2c”
输入:“adef” 输出:“adef”
输入:“pppppppp” 输出:“8p”
--------------------------------------------------------------------------------
二、完整代码
#include<iostream>#include<string>#include<sstream>#include<map>using namespace std;string StringZip(const string& str);//Precondition://Postcondition:int main(){string input_str, out_str;cin >> input_str;out_str = StringZip(input_str);cout << out_str << endl;return EXIT_SUCCESS;}string StringZip(const string& str){char front_char=str[0]-1;string result_str;size_t count=0;stringstream num_string;for (auto ch : str){if (ch != front_char){if (count != 0){num_string << count;if (count!=1)result_str += num_string.str();result_str += front_char;front_char = ch;count = 1;}else{front_char = ch;++count;}}else++count;}num_string << count;if (count != 1)result_str += num_string.str();result_str += front_char;return result_str;}
0 0
- 华为笔试题之字符串压缩
- 华为2014笔试编程题——字符串压缩
- 华为笔试之字符串旋转
- 华为笔试之字符串过滤
- 华为机试之字符串压缩问题
- 华为机试之压缩字符串
- 华为上机笔试之通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
- 华为笔试题,关于操控字符串
- 字符串压缩(华为)
- 华为字符串压缩程序
- 一道java笔试题------字符串压缩算法
- 笔试题-压缩与解压缩字符串
- 华为上机笔试题之约瑟夫环
- 华为机试题---字符串压缩
- 华为上机练习题--压缩字符串
- 去掉字符串中重复的字符 --- 华为笔试题
- 替换字符串——华为笔试时的一道题
- 华为上机笔试题——字符串转换
- Unity 4.3 制作一个2D横版射击游戏(2)
- 1-0 三台PC集群的搭建(noHA)
- 关于android BaseAdapter 中如何灵活控制listview 是否显示,是否有事件触发
- ubuntu 下配置jdk
- servlet,filter, listener, interceptor 区别与联系
- 华为笔试题之字符串压缩
- Code Snippets - Named Colors and Hex Equivalents
- 网络流
- 升级MAC OX上的Python到最新版
- Oracle 通用函数和条件表达式
- LeetCode|3SUM
- EBS导出功能一闪而过的问题
- 2-0三台PC集群的搭建(HA+backupmaster)
- 如何向外行人解释什么是内存溢出