同错
by liwenxi114514 @ 2022-11-21 20:17:42
```cpp
#include<bits/stdc++.h>
using namespace std;
string A,B,a[7],b[7];
int sum=1,ans=INT_MAX;
void dfs(string now,int step){
if(step>10){
return;
}
if(now==B){
ans=min(ans,step);
return;
}
for(int i=1;i<=n;i++){
int prev=now.find(a[i]);
if(prev!=-1){
string tmp=now;
tmp.replace(prev,a[i].size(),b[i]);
dfs(tmp,step+1);
}
}
}
int main(){
cin>>A>>B;
while(cin>>a[sum]>>b[sum]){
sum++;
}
sum--;
dfs(A,0);
if(ans>10){
cout<<"NO ANSWER!";
}else{
cout<<ans;
}
return 0;
}
```
by liwenxi114514 @ 2022-11-21 20:18:07
@[_rainbow_](/user/582049)
```cpp
for(int i=1;i<=n;i++){
int prev=now.find(a[i]);
if(prev!=-1){
string tmp=now;
tmp.replace(prev,a[i].size(),b[i]);
dfs(tmp,step+1);
}
}
```
这里你只是把第一个可以替换的字符串替换掉了,如果后面还有可以替换的字符串你就没有去递归下去了
by liwenxi114514 @ 2023-01-03 16:29:20
谢谢
by _rainbow_ @ 2023-01-04 16:58:08