侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】【比赛】翻硬币

Allen Best
2023-07-19 / 0 评论 / 0 点赞 / 35 阅读 / 327 字
温馨提示:
本文最后更新于 2023-07-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

解析:每次要翻两个相邻的,因此最少的情况,就应该是从头开始找两个字符串中不相同的位置,将当前位置和下一个位置的硬币翻过来。

#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;
}
0

评论区