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