题解 | #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; } };