Descrição do título:
Xiao Ming está jogando um jogo de "cara ou coroa".
Existem várias moedas seguidas na mesa. Usamos * para representar a frente e o para representar o verso (letras minúsculas, não zeros).
Por exemplo, as situações possíveis são:**oo***oooo
Se você virar as duas moedas à esquerda ao mesmo tempo, torna-se:oooo***oooo
Agora a pergunta de Xiaoming é: Se o estado inicial e o estado alvo a ser alcançado são conhecidos, e apenas duas moedas adjacentes podem ser viradas ao mesmo tempo ao mesmo tempo, quantas vezes devem ser viradas pelo menos para uma situação particular?
Concordamos: virar duas moedas adjacentes é chamado de operação de uma etapa.
Formato de entrada
Duas cadeias de comprimento igual representam, respectivamente, o estado inicial e o estado de destino a ser alcançado.
Formato de saída
Um número inteiro que representa o número mínimo de etapas de operação
intervalo de dados
O comprimento da string de entrada não excede 100.
Os dados garantem que a resposta deve ser solucionável.
Exemplo de entrada 1:
**********
o****o****
Amostra de saída 1:
5
Exemplo de entrada 2:
*o**o***o***
*o***o**o***
Amostra de saída 2:
1
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX = 109;
char a[MAX], b[MAX];
int main()
{
scanf("%s %s", a, b);
int l = strlen(a);
int sum = 0;
for(int i = 0; i < l; i++)
{
if(a[i] != b[i])
{
sum ++;
if(a[i+1] == 'o')
a[i+1] = '*';
else
a[i+1] = 'o';
}
}
printf("%d\n", sum);
return 0;
}