当前位置:首页>java>【每日编程-26期】LZ上机题(二)

【每日编程-26期】LZ上机题(二)

  • 2026-10-21 13:28:24
【每日编程-26期】LZ上机题(二)
LZ大学上机题(二)

每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊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;}
明日预告:XB大学上机题(一)
十进制转为二进制。

输入格式:

输入一个10000以内的数转换为二进制数。

输出格式:

转换为二进制后输出。

输入样例:

1030

输出样例:

10000000110

最新文章

随机文章