题解 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的主要内容,如果未能解决你的问题,请参考以下文章

题解Puzzle [Uva1399]

UVA540 Team Queue——题解 by hyl天梦

UVA 11729 Commando War 题解

UVA 10789 题解

题解 UVa11547

[UVA - 12034] Race 题解