凌艺樽 • 4个月前
#include<bits/stdc++.h>
#pragma GCC optimize(3)
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int N=1e2+10;
const int INF=0x3f3f3f3f;
string s,k;
int l,a[N];
int main()
{
IOS;
cin>>k>>s;
for(int i=0;i<k.size();++i)
{
if(k[i]<='z' && k[i]>='a')
{
k[i]-=32;
}
a[++l]=(int)(k[i]-'A');
//cout<<a[l]<<" ";
}
//cout<<endl;
l=1;
for(int i=0;i<s.size();++i)
{
if(s[i]-a[l]<'A' && s[i]>='A' && s[i]<='Z')
{
int maxx=s[i]-'A';
s[i]='Z'-(a[l]-maxx);//+
}
else if(s[i]-a[l]<'a' && s[i]>='a' && s[i]<='z')
{
int maxx=s[i]-'a';
s[i]='z'-(a[l]-maxx)+1;
}
else
{
s[i]-=a[l];
}
cout<<s[i];
l++;
if(l>k.size())
{
l=1;
}
}
return 0;
}
//为防抄题解,有1处需经过修改才能AC
评论:
直接把你的代码1秒修改好
#include<bits/stdc++.h>
#pragma GCC optimize(3)
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int N=1e2+10;
const int INF=0x3f3f3f3f;
string s,k;
int l,a[N];
int main()
{
IOS;
cin>>k>>s;
for(int i=0;i<k.size();++i)
{
if(k[i]<='z' && k[i]>='a')
{
k[i]-=32;
}
a[++l]=(int)(k[i]-'A');
}
l=1;
for(int i=0;i<s.size();++i)
{
if(s[i]-a[l]<'A' && s[i]>='A' && s[i]<='Z')
{
int maxx=s[i]-'A';
s[i]='Z'+(a[l]-maxx);
}
else if(s[i]-a[l]<'a' && s[i]>='a' && s[i]<='z')
{
int maxx=s[i]-'a';
s[i]='z'-(a[l]-maxx)+1;
}
else
{
s[i]-=a[l];
}
cout<<s[i];
l++;
if(l>k.size())
{
l=1;
}
}
return 0;
}