您的位置:首页 > 其它

1078. 字符串压缩与解压 (20)

2017-12-16 21:30 375 查看
题目地址:1078. 字符串压缩与解压 (20)

#include <bits/stdc++.h>
using namespace std;
string decompressed(string line)
{
string ans;
for(size_t i=0;i<line.size();++i)
{
if(line[i]>='0'&&line[i]<='9')
{
string w;
while(line[i]>='0'&&line[i]<='9'&&i<line.size())
w+=line[i++];
ans+=string(stoi(w),line[i]);
}
else ans+=line[i];
}
return ans;
}
string compressed(string line)
{
string ans;
for(size_t i=0;i<line.size();++i)
{
char w=line[i];
auto next=i+1;
while(next<line.size()&&line[next]==w)++next;
if(next-i>1)
ans+=to_string(next-i);
ans+=w;
i=next-1;
}
return ans;
}
int main()
{
char opt;
string line,ans;
cin>>opt;
cin.get();
getline(cin,line);
if(opt=='C')
ans=compressed(line);
else
ans=decompressed(line);
cout<<ans;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: