RE了一半
查看原帖
RE了一半
490484
include13_fAKe楼主2023/10/15 23:43
#include<bits/stdc++.h>
using namespace std;

int N;
string T;
string S;
int t,s;
bool ans[5*114514];
int final=0;
bool solve(int num){
	if(abs(s-t)>1)	return false;
	if(s==t){
		int c=0;
		for(int i=0;i<s;i++){
			c+=(S[i]!=T[i]);
		}
		if(c<=1)	final++,ans[num]=true;
		return (c<=1);
	}
//	bool flag=false;
	int i,j;
	string A=S,B=T;
	int a=s,b=t;
	if(a>b){
		swap(a,b);
		swap(A,B); 
	}
//	cout<<A<<endl<<B<<endl<<endl;
	int y=0;
	for(i=0,j=0;i<a;i++,j++){
//		cout<<i<<' '<<j<<endl;
		if(A[i]!=B[j])	i--,y++;
	}
	if(y>1)	return false;
//	cout<<j<<endl;
//	if(j==t||j==t-1){
		final++;
		ans[num]=true;
		return true;
//	}
//	return false;
}
int main(){
	cin>>N>>T;
	t=T.size();
	for(int i=1;i<=N;i++){
		cin>>S;
		s=S.size();
		solve(i);
	} 
	cout<<final<<endl;
	for(int i=1;i<=N;i++){
		if(ans[i]){
			cout<<i<<' ';
		}
	}
	cout<<endl;
	return 0;
}
2023/10/15 23:43
加载中...