#include <iostream>
#include <cmath>
using namespace std;
int main()
{
string s,p;
cin>>s>>p;
int len = s.length();
int ans = 0;
for(int i=0;i<len;i++)
{
if(s[i] != p[i])
{
if(s[i] == 'o')
{
s[i] = '*';
if(s[i+1] == 'o')
s[i+1] = '*';
else
s[i+1] = 'o';
}
else
{
s[i] = 'o';
if(s[i+1] == '*')
s[i+1] = 'o';
else
s[i+1] = '*';
}
ans++;
}
}
printf("%d",ans);
return 0;
}
简单模拟…
说下我的思路吧…
首先要求最小的步数,毫无疑问贪心
问题在于怎么贪,容易想到,如果当前条件不符合(一个一个遍历)的话:
我们必翻面,同时我们此时只翻后边的,因为我们假定前面的已经是和目标串一样的…
…