递推
这种给定初始状态 目标状态 和操作方法的通用方法是宽搜 但是时间复杂度高
可以用单纯的递归来做
尝试后发现 只有一组解 因此甚至不是一个求最优解的问题 非常简单
现在做题还是没思路.... 听了一遍才写出来....
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=105;
char start[N],aim[N];
void turn(int i){
if(start[i]=='*') start[i]='o';//又写成一个等号了!!!
else start[i]='*';
}
int main(){
cin>>start>>aim;//注意字符串的读入 写数组名即可 不能写成start[N]
int length=strlen(start);
int cnt=0;
for(int i=0;i<length;i++)
if(start[i]!=aim[i]){
turn(i);
turn(i+1);
cnt++;
}
cout<<cnt<<endl;
return 0;
}