问题标题: 酷町堂:1791 求解!!

0
0
已解决
丁炳瑜
丁炳瑜
高级光能
高级光能

题目链接: 酷町堂:1791

1791   密码升级战

经验值:1200 时间限制:1000毫秒 内存限制:128MB

题目描述 De**ion

密码战中A国的密码被我们成功破译,所以A国想出另外一条密码规则:

密码仍然为一串字符串,字符串里面每5个字符分为1组;

第一组字符串里面的字母转化为其后的第二个字母,例如:A–C,a–c,Y–A,y–a;

第二组字符串里面的字母转化为其前的第二个字母,例如:C–A,c–a,A–Y,a–y;

后面的字符串的字母全部转化为其后的第一个字母,例如:A–B,a–b,Z–A,z–a。

(除了字母以外的其他字符都不进行变化)

无奈我国再次截取了他们的密码,请将截获的密码翻译成原先的密码。

输入描述 Input De**ion

截取的字符串密码,密码字符个数为(1-50)

输出描述 Output De**ion

破译后的字符串密码

样例输入 Sample Input

NfjTCmianWGoiA

样例输出 Sample Output

LdhRAokcpYFnhZ

附上本人WA0分代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0,d=0;
string a[105],x,y;
int b[10005];
int main(){
    getline(cin,x);
    for(int i=0;i<=min(4,(int)x.size());i++){
        if(x[i]>='A'&&x[i]<='Z'||x[i]>='a'&&x[i]<='z'){
            if(x[i]=='B'){
                cout<<'Z';
            }else if(x[i]=='b'){
                cout<<'z';
            }else if(x[i]=='A'){
                cout<<'Y';
            }else if(x[i]=='a'){
                cout<<'y';
            }else{
                cout<<char(x[i]-2);
            }
        }else{
            cout<<x[i];
        }
    }
    for(int i=5;i<=min(9,(int)x.size());i++){
        if(x[i]>='A'&&x[i]<='Z'||x[i]>='a'&&x[i]<='z'){
            if(x[i]=='Z'){
                cout<<'B';
            }else if(x[i]=='z'){
                cout<<'b';
            }else if(x[i]=='Y'){
                cout<<'A';
            }else if(x[i]=='y'){
                cout<<'a';
            }else{
                cout<<char(x[i]+2);
            }
        }else{
            cout<<x[i];
        }
    }
    for(int i=10;i<=x.size();i++){
        if(x[i]>='A'&&x[i]<='Z'||x[i]>='a'&&x[i]<='z'){
            if(x[i]=='A'){
                cout<<'Z';
            }else if(x[i]=='a'){
                cout<<'z';
            }else{
                cout<<char(x[i]-1);
            }
        }else{
            cout<<x[i];
        }
    }
    return 0;

}

 


0
已采纳
薛安博
薛安博
初级光能
初级光能

除了字母以外的其他字符都不进行变化

0
0
0
我要回答