【每日编程-366期】兰州大学上机题(二)

教育   2024-11-25 10:01   广西  

兰州大学上机题(二)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



字符串压缩,比如xxxxxdddfff,输出x5d3f3

输入格式:

输入一个仅含字母的字符串

输出格式:

输出压缩后的字符串

输入样例:

xxxxxdddfff

输出样例:

x5d3f3

解决方法:

(1)算法的基本思想:

设置一个游标,一个计数器,依次将当前的字符和游标字符比较,如果相同,计数器++,游标继续后移,如果不同,将当前的字符加入到待输出的字符串中,并加入计数器的数量。

(2)代码实现:

#include 
#include 
using namespace std;

#define MAX_SIZE 100 //假设字符长度最大为100

string compress(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;
}

int main()
{
    char str[MAX_SIZE];
    cin>>str;
    string s = compress(str);
    cout << s << endl;
    system("pause");
    return 0;
}

明日预告:西北工业大学上机题(一)
十进制转为二进制。

输入格式:

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

输出格式:

转换为二进制后输出。

输入样例:

1030

输出样例:

10000000110


灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章