题解 | #01串修改#

01串修改

http://www.nowcoder.com/questionTerminal/d870f468b9524155aabf6a812a03ace2

class Solution {
  public:

    int minOperations(string str) {
        int count, res = 501;
        double len;
        // 这个循环很有意思,不仅是循环两次,更是用到了每次循环的字符
        for (char ch = '0'; ch <= '1'; ch++) {
            count = 0, len = 0.0;
            for (char cha : str) {
                if (cha == ch) len++;
                else {
                    if (len != 0) {
                        // 这里如果是int/2会出现结果为0的情况
                        count += ceil(len / 2.0);
                        len = 0;
                    }
                }
            }
            if (len != 0) count += ceil(len / 2.0);// 处理结尾剩下的部分
            res = min(res, count);
        }
        return res;
    }
};

全部评论

相关推荐

12-27 22:28
门头沟学院 Java
点赞 评论 收藏
分享
12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
求个付费实习岗位:这种就是吃满时代红利又没啥技术水平,只能靠压力学生彰显优越感的老登,别太在意了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务