#include <bits/stdc++.h>
using namespace std;
int n;
string t_1, t_2, t_3;
int k_1, k_2[500001];
int main() {
scanf("%d", &n);
cin >> t_1;
for (int i = 1; i <= n; i++) {
cin >> t_2;
if (t_2.size() - 2 > t_1.size() - 1)
continue;
if (t_2 == t_1) {
k_1++;
k_2[k_1] = i;
} else {
t_3 = t_1.substr(1, t_1.size() - 1);
if (t_3 == t_2) {
k_1++;
k_2[k_1] = i;
continue;
}
t_3 = t_1.substr(0, t_1.size() - 2);
if (t_3 == t_2) {
k_1++;
k_2[k_1] = i;
continue;
}
t_3 = t_2;
for (int j = 0; j < t_3.size(); j++)
if (t_3[j] != t_1[j]) {
char x = t_3[j];
string s;
s = x;
t_3.erase(j, 1);
if (t_3 == t_1) {
k_1++;
k_2[k_1] = i;
continue;
} else {
t_3.insert(j - 1, s);
break;
}
}
int t = 0;
if (t_2.size() == t_1.size()){
for (int j = 0; j < t_2.size(); j++)
if (t_2[j] != t_1[j])
t++;
if (t == 1) {
k_1++;
k_2[k_1] = i;
continue;
}
}
}
}
printf("%d\n", k_1);
for (int i = 1; i <= k_1; i++)
printf("%d ", k_2[i]);
}
为什么RE?