最后一个点MLE了,求助
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
string a,b;
int t=1;
struct node{
string x,y;
}o[8];
struct nod{
string u;
int cs;
};
bool check(string x,string y){
int len_x=x.size(),len_y=y.size();
if(len_x!=len_y) return false;
for(int i=0;i<len_x;i++){
if(x[i]!=y[i]) return false;
}
return true;
}
queue<nod>q;
nod x;
string u;
int cs;
int main(){
cin>>a>>b;
while(cin>>o[t].x>>o[t].y){t++;}
q.push((nod){a,0});
while(!q.empty()){
x=q.front();
q.pop();
u=x.u,cs=x.cs;
string v;
if(cs>10){printf("NO ANSWER!");break;}
if(check(u,b)){printf("%d",cs);break;}
for(int i=1;i<=t;i++){
v=u;
int len=o[i].x.size();
int p;
p=v.find(o[i].x,0);
if(p==-1) continue;
v.replace(p,len,o[i].y);
q.push((nod){v,cs+1});
}
}
return 0;
}