首先根据上题,我们需要发现两个结论:

1) 首尾相同的字符串一定是平衡的。

2) 首尾不相同的字符串一定是不平衡的。

——引用自 官方题解

原题解对于做法讲的很清楚,这里仅作上述结论的证明

我们设字符串

假设字符 '0' 是数字 ,字符 '1' 是数字

表示字符串 "01" 子串出现的次数, 表示字符串 "10" 子串出现的次数。

对于每个 ,考虑差分

易知 注意力惊人

  • 时,

  • 时,

对差分数组进行求和

又因为

整理,得

从而得出结论 当且仅当 时,即 时,字符串平衡。

因此字符串是否平衡只和首尾字符有关,接下来可以分情况继续讨论~