96C - Hockey

字符串处理

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=;
const int INF=0x7f7f7f7f;
char s[N][N];
char res[N],ss;
int vis[N]={};
int main()
{
int n;
cin>>n;
for(int i=;i<n;i++)
{
getchar();
cin>>s[i];
}
getchar();
cin>>res;
getchar();
cin>>ss;
for(int j=;j<n;j++)
for(int i=;i<strlen(res);i++)
{
if(abs(s[j][]-res[i])=='a'-'A'||abs(s[j][]-res[i])==)
{
bool flag=true;
for(int k=;k<strlen(s[j]);k++)
if(abs(s[j][k]-res[i+k])!='a'-'A'&&abs(s[j][k]-res[i+k])!=)flag=false;
if(flag)
{
for(int k=;k<strlen(s[j]);k++)vis[i+k]=;
}
}
}
for(int i=;i<strlen(res);i++)
{
if(vis[i])
{
if(isupper(res[i])&&res[i]!=ss-'a'+'A')res[i]=ss-'a'+'A';
else if(islower(res[i])&&res[i]!=ss)res[i]=ss;
else if(isupper(res[i]))
{
for(int j=;j<;j++)
if(res[i]!='A'+j)
{
res[i]='A'+j;
break;
}
}
else
{
for(int j=;j<;j++)
if(res[i]!='a'+j)
{
res[i]='a'+j;
break;
}
}
}
}
cout<<res<<endl;
return ;
}
04-22 11:43