在二进制字符串中查找子字符串
Find substrings in binary string
我得到了 0
s 和 1
s 的字符串,并且必须找到不同数量的子字符串,使得:
0
和 1
的数量应该相同
1
s 应该在 0
s 之后。
因此,例如给出的 001101
答案将是 2: 0011, 01
有什么建议么?我想不出解决方案
如何只生成01
、0011
等,检查它们是否都在给定的字符串中,然后计算出现的次数?
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 中引入)。
我得到了 0
s 和 1
s 的字符串,并且必须找到不同数量的子字符串,使得:
0
和1
的数量应该相同1
s 应该在0
s 之后。
因此,例如给出的 001101
答案将是 2: 0011, 01
有什么建议么?我想不出解决方案
如何只生成01
、0011
等,检查它们是否都在给定的字符串中,然后计算出现的次数?
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 中引入)。