279最长连续交替01子串问题
题解
要解决这个问题,我们需要找到通过将二进制字符串分割并翻转各部分后,能够得到的最长连续交替01
子串的长度。关键在于识别字符串中相邻相同字符的位置,然后尝试翻转这些部分以最大化交替子串的长度。
解题思路
- 字符串翻转后并不会影响最长的
01
串的长度 - 题目的操作会使得字符串的头和尾拼接。如果头和尾的字符是相同的,那么最长的
01
一定在原本的字符串中。 - 如果头和尾的字符是不同的,那么最长的
01
串可能两个部分拼接而成。这两个部分分别是原字符串的前缀和后缀,因此我们只需要找到前缀和后缀中第一个相邻相同字符的位置,然后尝试翻转这两个部分,找到最长的01
串即可。
代码实现
1 |
|
279最长连续交替01子串问题
https://kongshuilinhua.github.io/2024/12/30/279最长连续交替01子串问题/