查找二进制字符串中具有相等1和0的子串数

时间:2017-11-10 20:34:33

标签: algorithm

我遇到了以下问题,

查找字符串中包含相同数量的1&0和0的子串的总数。此外,子字符串应连续0,然后连续1,反之亦然。

例如,

1010 - 10,01,10

1100110- 1100,10,0011,01,10.

我最初的想法是使用n ^ 2循环查找所有子字符串,然后检查条件是否满足。显然必须有一个更好的解决方案,因为我无法通过所有案件。

请提出改进​​建议。谢谢。

1 个答案:

答案 0 :(得分:3)

我建议如下 - 为每个连续的0或1的长度为L(k)的序列迭代你的序列(除了第一个)加到计数器min(L(k),L(k- 1))。计数器的最终值将是您要查找的数字。

对于你的例子1100110

L =(2,2,2,1)

总和为2 + 2 + 1 = 5