#include<iostream>
#include<string>
using namespace std;
int main()
{
string mode, input, output;
int i, first, second;
getline(cin, mode);
if (mode == "C") //压缩
{
getline(cin, input);
int cnt = 1;
for (i = 0; i < input.size() - 1; ++i)
{
if (input[i] == input[i + 1])
cnt++;
else
{
if (cnt == 1)
output += input[i];
else
{
string num = to_string(cnt);
output += num + input[i];
cnt = 1;
}
}
}
if (input[i - 1] == input[i])
{
string num = to_string(cnt);
output += num + input[i];
}
else
output += input[i];
}
else //解压缩
{
getline(cin, input);
for (i = 0; i < input.size();)
{
if (isdigit(input[i]))
{
first = second = i;
while (isdigit(input[second]))
second++;
int cnt = stoi(string(input.begin() + first, input.begin() + second));
for (int j = 0; j < cnt; ++j)
cout << input[second];
i = second + 1;
}
else
cout << input[i++];
}
}
cout << output;
}
1078 字符串压缩与解压
最新推荐文章于 2024-11-18 19:34:29 发布