在二进制字符串中查找子字符串

Find substrings in binary string

我得到了 0s 和 1s 的字符串,并且必须找到不同数量的子字符串,使得:

  1. 01 的数量应该相同
  2. 1s 应该在 0s 之后。

因此,例如给出的 001101 答案将是 2: 0011, 01 有什么建议么?我想不出解决方案

如何只生成010011等,检查它们是否都在给定的字符串中,然后计算出现的次数?

s = '001101'

substrings = [t for x in range(1, len(s) // 2 + 1) if (t := '0' * x + '1' * x) in s]
print(substrings, len(substrings)) # ['01', '0011'] 2

这使用列表理解和“海象”运算符(在 python 3.8 中引入)。