[模拟题]leetcode1776:生成交替二进制字符串的最少操作数(easy)

题目:
[模拟题]leetcode1776:生成交替二进制字符串的最少操作数(easy)
[模拟题]leetcode1776:生成交替二进制字符串的最少操作数(easy)


题解:

  • 由于交错字符串要是"010101...",要么是"101010...",所以我们直接统计将字符串s变成前面两种就行了,我们用一个函数solve()来解决,具体思路见代码。

代码如下:

class Solution {
public:
    int solve(const string& s,char c)
    {
        int cnt=0;
        for(auto x:s)
        {
            // 当前字符和要变成的交错字符串不同的话,进行操作一次
            if(c!=x)cnt++;
            // c若为0则变为1,c若为1则变为0
            c^=1;
        }
        return cnt;
    }
    
    // 题解:交错字符串要么是01 01 01...,要么是10 10 10...
    // 所以我们只要统计将s变成上面两种的最小次数就行了
    int minOperations(string s) {
       return min(solve(s,'0'),solve(s,'1'));
    }
};
上一篇:基于FPGA的DW8051移植(三)


下一篇:easy-x常用函数