AC但不懂
查看原帖
AC但不懂
1123452
czh___楼主2025/7/24 20:24
#include<bits/stdc++.h>
using namespace std;
unordered_set<string>se,ans;
string s;
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++)
		cin>>s,
		se.insert(s);
	while(m--){
		ans.clear();
		string str;
		cin>>str;
		if(se.count(str)){
			cout<<"-1\n";
			continue;
		}
		int len=str.size();
		//替换
		{
			for(int i=0;i<len;i++){
				char c=str[i];
				for(char d='a';d<='z';d++){
					if(d==c)
						continue;
					str[i]=d;
					if(se.count(str))
						ans.insert(str);
				}
				str[i]=c;
			}
		}
		//删除
		{
			for(int i=0;i<len;i++){
				string t=str;
				t.erase(i,1);
				if(se.count(t))
					ans.insert(t);
			}
		}
		//添加
		{
			for(int i=0;i<=len;i++){
				for(char c='a';c<='z';c++){
					string t=str;
					t.insert(i,1,c);
					if(se.count(t))
						ans.insert(t);
				}
			}
		}
		cout<<ans.size()<<"\n";
	}
	return 0;
}
2025/7/24 20:24
加载中...