这题我不会做…..打的时候想破头也没想出怎么做。
补题,研究了一下cf的ac代码,发现只需要暴力把不一样的字符换过来就好了……什么都不用去考虑…………
呃,原来这样就可以了么?
那就这样吧,是我脑子坏了……
ac代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, index = 0, ans[100005];
char s[55], t[55];
scanf("%d%s%s", &n, s, t);
for(int i = 0; i < n; i++) {
int j = i;
while(s[j] != t[i] && j < n) {
j++;
}
if(j == n) {
index = -1;
break;
}
for(int k = j - 1; k >= i; k--) {
ans[index++] = k + 1;
swap(s[k], s[k + 1]);
}
}
printf("%d\n", index);
for(int i = 0; i < index; i++) {
printf("%d ", ans[i]);
}
return 0;
}