0
点赞
收藏
分享

微信扫一扫

PAT (Basic Level) Practice (中文)- 1078 字符串压缩与解压(20 分)


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:略。

AC 代码

#include<bits/stdc++.h>
#include<cmath>

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

int main()
{
char op;
string s;
scanf("%c",&op);
getchar();
getline(cin,s);
int len=s.length();

if(op=='C')
{
int cnt=1;
for(int i=0;i<len-1;i++)
{
if(s[i]==s[i+1]) cnt++;
else
{
if(cnt==1) putchar(s[i]);
else printf("%d%c",cnt,s[i]);
cnt=1;
}
}

if(len-2>=0 && s[len-1]==s[len-2]) printf("%d%c",cnt,s[len-1]);
else putchar(s[len-1]);
}
else
{
int num=0;
for(int i=0;i<len;i++)
{
if(isdigit(s[i])) num=num*10+(s[i]-'0');
else
{
if(num>0) while(num--) putchar(s[i]);
else putchar(s[i]);
num=0;
}
}
}
puts("");

return 0;
}


举报

相关推荐

0 条评论