题目大意:
给出一串明文和一串密文,要求找出他们的凯撒加密(所有字母向前向后偏移几个字母)规则,然后再给出一段密文与刚才给出的加密规则相同,要求计算出该密文的明文
题解:
通过给出的明文密文找出字母偏移量然后将给的密文减去偏移量即可。
但要注意小于‘A’和超出‘Z’的问题!!!
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
#define ll long long
int main()
{
//freopen("input.txt","r",stdin);
int T;
cin>>T;
for(int cas=1;cas<=T;++cas)
{
int n,m;
string s1,s2,t;
cin>>n>>m;
cin>>s1>>s2;
int x=s2[0]-s1[0];
cin>>t;
for(int i=0;i<m;++i)
{
t[i]-=x;
if(t[i]<'A')t[i]+=26;
if(t[i]>'Z')t[i]-=26;
}
cout<<"Case #"<<cas<<": "<<t<<endl;
}
return 0;
}