ref
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std;
int n;
char su[2005], sv[2005];
vector<int> vec;
void shift(int x){
if(x==0) return ;
reverse(su+1, su+1+n);
reverse(su+1+x, su+1+n);
vec.push_back(x);
}
int main(){
cin>>n;
scanf("%s", su+1);
scanf("%s", sv+1);
for(int i=1; i<=n; i++){
int j=i;
for(; j<=n; j++)
if(su[j]==sv[n-i+1])
break;
if(j==n+1){
printf("%d\n", -1);
return 0;
}
shift(n);
shift(j-1);
shift(1);
}
cout<<vec.size()<<endl;
for(int i=0; i<vec.size(); i++)
cout<<vec[i]<<" ";
cout<<endl;
return 0;
}
|
请发表评论