- 字符串还原
- 2016-11-04 17:37:05 @
第三个点和第五个点过不去 求救
```
code block
#include <iostream>
using namespace std;
char a[10001],b[10001],c[10001];
bool compare(char a[],char b[],int n,int k){
for(int i=0;i<n;i++){
int ia=a[i]+k;
int ib=b[i]-k;
if(ia>122)
ia-=26;
if(ib<97)
ib+=26;
if(ia!=ib)
return false;
}
return true;
}
void strrev(char a[],int n){
for(int i=0,j=n-1;i<j;i++,j--){
char tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
int main(){
int n;
cin>>n;
cin>>a>>b>>c;
for(int k=0;k<=6;k++){
if(compare(a,b,n,k)){
strrev(c,n);
cout<<c;
return 0;
}
if(compare(a,c,n,k)){
strrev(b,n);
cout<<b;
return 0;
}
if(compare(b,a,n,k)){
strrev(c,n);
cout<<c;
return 0;
}
if(compare(b,c,n,k)){
strrev(a,n);
cout<<a;
return 0;
}
if(compare(c,a,n,k)){
strrev(b,n);
cout<<b;
return 0;
}
if(compare(c,b,n,k)){
strrev(a,n);
cout<<a;
return 0;
}
}
return 0;
}
```
2 条评论
-
cjn7788577 LV 8 @ 2017-12-07 01:26:19
3 5WA的话,好好想想,你是不是用的一个反串,一个加串,一个减串。
我也没合适的样例,但我按这个思路走就改AC了 -
2016-12-11 21:04:32@
看我这个程序5个点……
c++
#include <bits/stdc++.h>
using namespace std;
char a[4][1000001];
int main()
{
int i,j,k,l,n,m;
cin>>n;
cin>>a[1];
cin>>a[2];
cin>>a[3];
for(i=n-1;i>=0;i--) cout<<a[2][i];
cout<<endl;
return 0;
}
- 1