题目描述:
提交:
class Solution: def countBinarySubstrings(self, s: str) -> int: if not s: return 0 res = 0 count = [0,0] for i in range(len(s)): num = int(s[i]) if i == 0: count[num] += 1 elif s[i] == s[i-1]: count[num] += 1 if count[num] <= count[1 - num]: res += 1 else: count[num] = 1 if count[num] <= count[1 - num]: res += 1 return res
优化:
class Solution: def countBinarySubstrings(self, s: str) -> int: # 遍历字符串的同时记录每一个字母的个数就行了 if not s: return 0 cur = s[0] last_count, cur_count = 0, 1 res = 0 for a in s[1:]: if a == cur: cur_count += 1 if cur_count <= last_count: res += 1 else: res += 1 last_count, cur_count = cur_count, 1 cur = a return res
原文:https://www.cnblogs.com/oldby/p/13473097.html