题解 UVa11541
Posted s-t-a-r-d-u-s-t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 UVa11541相关的知识,希望对你有一定的参考价值。
题意翻译:定义一种字符串加密方法,将连续的\(k\)个大写字母\(C\)加密为\(Ck\)。如:\(AABBBBDAA\)加密为\(A2B4D1A2\)。现输入加密后字符串,对字符串解密。
加密方式很简单,大概也有思路,只需循环读入字符串,对每个加密单元进行解密并存入新字串即可。
具体的实现可以采用在线处理,由于字串合法,两个字母不会相连,故读到字母即将其记录,并进入一个新的循环,将该字母后的数字全部读完再统计数目,随后将该字母存入新字串。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
int t;
cin>>t;
for(int i=1;i<=t;i++)
string st;
char a[500];
cin>>st;
int l=st.size(),num=0;
for(int j=0;j<l;j++)
if(st[j]>='A'&&st[j]<='Z')
int last=0;
for(int k=j+1;k<l;k++)
if(st[k]<'0'||st[k]>'9')
break;
last=last*10+int(st[k])-48;
for(int k=1;k<=last;k++)
a[++num]=st[j];
printf("Case %d: ",i);
for(int j=1;j<=num;j++)
cout<<a[j];
cout<<endl;
return 0;
以上是关于题解 UVa11541的主要内容,如果未能解决你的问题,请参考以下文章