每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
字符串压缩,比如xxxxxdddfff,输出x5d3f3
输入格式:
输入一个仅含字母的字符串
输出格式:
输出压缩后的字符串
输入样例:
xxxxxdddfff
输出样例:
x5d3f3
解决方法:
(1)算法的基本思想:
设置一个游标,一个计数器,依次将当前的字符和游标字符比较,如果相同,计数器++,游标继续后移,如果不同,将当前的字符加入到待输出的字符串中,并加入计数器的数量。
(2)代码实现:
#include#includeusingnamespacestd;#define MAX_SIZE 100 //假设字符长度最大为100stringcompress(string iniString){string str;int count = 1;for (int i = 0; i < iniString.length(); i++) {if (iniString[i] == iniString[i + 1]) { count++;continue; } str += iniString[i]; str += to_string(count); count = 1; }if (str.length() >= iniString.length())return iniString;return str;}intmain(){char str[MAX_SIZE];cin>>str;string s = compress(str);cout << s << endl; system("pause");return0;}
十进制转为二进制。输入格式:
输入一个10000以内的数转换为二进制数。输出格式:
转换为二进制后输出。输入样例:
1030
输出样例:
10000000110
