给定一个由 000 和 111 组成的数组 A,将数组分成 333 个非空的部分,使得所有这些部分表示相同的二进制值。

这三个部分所表示的二进制值相等。

示例 1

题目要求将一个 0-1 数组分割成不为空的三部分,要求每部分看作二进制串后,数值相等(忽略前导零)

因此,需要操作的第一步是获取几个关键的 111 的位置:每部分的第一个和最后一个 111

那么,可根据每部分最后一个 111 的位置加上后导零个数,获得分割点。

接下来,分别判断 iii、jjj 是否合法(是否在下一个区域的位置)。至此,前两个条件已满足,只需要判断最后一个条件:非前后导零部分是否相同,只需要判断各个分区关键位置的长度即内容即可。

除去上述部分,还需要考虑一些特殊情况: