📄 4746294_ac_344ms_780k.cpp
字号:
#include<iostream>
#include<string>
using namespace std;
string q[10005];
string out[10005];
string input;
int ql,outl;
bool canmatch(string x)
{
int i,j;
if(x.length()==input.length()+1)
{
j=0;
for(i=0;i<input.length();i++)
{
if(j>=x.length()) return false;
if(input[i]==x[j]) j++;
else
{
i--;j++;
}
}
return true;
}
else
if(x.length()==input.length())
{
int mis=0;
for(i=0,j=0;i<x.length();j++,i++)
{
if(x[i]!=input[j])
{
mis++;
if(mis>1) return false;
}
}
return true;
}
else
if(x.length()==input.length()-1)
{
j=0;
for(i=0;i<x.length();i++)
{
if(j>=input.length()) return false;
if(x[i]==input[j]) j++;
else
{
i--;j++;
}
}
return true;
}
else return false;
}
void slove()
{
int i;
outl=0;
for(i=0;i<ql;i++)
{
if(q[i]==input) {cout<<input<<" is correct\n";return;}
if(canmatch(q[i]))
{
out[outl]=q[i];outl++;
}
}
cout<<input<<":";
for(i=0;i<outl;i++) cout<<" "<<out[i];
cout<<endl;
}
int main()
{
ql=0;
//string jing;
//cin>>input>>jing;
//canmatch(jing);
while(1)
{
cin>>q[ql];
ql++;
if(q[ql-1]=="#") {ql--;break;}
}
while(1)
{
cin>>input;
if(input=="#") return 0;
slove();
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -