解析:每次要翻两个相邻的,因此最少的情况,就应该是从头开始找两个字符串中不相同的位置,将当前位置和下一个位置的硬币翻过来。
#include <bits/stdc++.h>
using namespace std;
string a,b;
int main()
{
cin>>a>>b;
int cnt =0;
for(int i = 0 ;i < a.size() - 1 ;i++)
{
if(a[i]!=b[i])
{
cnt++;
if(a[i]=='*') a[i]='o';
else a[i]='*';
if(a[i+1]=='*') a[i+1]='o';
else a[i+1]='*';
}
}
cout<<cnt<<endl;
return 0;
}
评论区