魔法师 (@Constanline) 在 Leetcode每日一题 —— 1888. 使二进制字符串字符交替的最少反转次数 中发帖

思路 
操作1并不改变顺序,所以只是把前天的题改成了一个环状字符串,我们可以将去头去尾的字符串跟原字符串连起来模拟一个环,然后用前天的方法就可以了。 
当然其实不用连接也是可以的,不过今天还有事忙,这样直接一些。 
代码 
    public int minFlips(String s) {
        // 字符串长度
        int n = s.length();
        // 最后一位的奇偶性
        int m = n & 1;
        // 将可能得字符串连接起来,其实用环不需要字符串连接也是可以的
        s = s.substring(1) + s + s.substring(0, n - 1);
        // 分别记录 偶数位1、0 和 奇数位1、0 的数量, 其实只记 1 或 0 就行,不过这样方便
       ...
 
 
Back to Top