题目类型:
初始状态变到目标状态需要几步 ——宽搜bfs(状态数不是很大的情况下)
题目:
代码:
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
int n;
char start[N], aim[N]; //开始状态和目标状态
void turn(int i)
{
if (start[i] == '*') start[i] = 'o';
else start[i] = '*';
}
int main()
{
cin >> start >> aim;
n = strlen(start);
int res = 0;
for (int i = 0; i < n - 1; i ++ ) //从前往后扫描每一个字符,一定有解扫描到n-1就可
if (start[i] != aim[i]) //字符不相等,就反转
{
turn(i), turn(i + 1);
res ++ ;
}
cout << res << endl;
return 0;
}