首页 > 试题广场 >

橡皮泥斑马

[编程题]橡皮泥斑马
  • 热度指数:2563 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易很喜欢斑马,因为它们身上黑白相间的花纹。
一天小易得到了一串橡皮泥,这串橡皮泥只有黑色和白色,小易想把这串橡皮泥重新拼凑一下,让这个橡皮泥串中最长的连续的黑白相间的子串最长,但是小易有强迫症,所以他可以对橡皮泥串进行以下的操作0次或多次:
把橡皮泥串从某个地方切割开,将两个得到的两个串同时翻转,再拼接在一起。
这个橡皮泥串可能太长了,所以小易没有办法计算最终可以得到的最长的连续的黑白相间的子串的长度,希望你能帮他计算出这个长度。

输入描述:
一个字符串s,只包含字母'b'和字母'w',分别表示黑色和白色的橡皮泥块。
满足1 <= |s| <= 105,|s|代表字符串的长度。


输出描述:
一个整数,表示改变之后最长的连续的黑白相间的子串的长度。
示例1

输入

bwbwb

输出

5
示例2

输入

wwb

输出

3
头像 白伟仝
发表于 2020-05-07 10:00:05
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc. 展开全文
头像 大厂算法岗必拿下
发表于 2021-09-18 06:35:41
注意问题得转化。2. 这个题就是双指针(字符串之类的题目经常使用双指针来做) 注意双指针移动得细节。 最后的min,返回min。 #include<bits/stdc++.h> using namespace std; int main(){ string s; ci 展开全文
头像 bandiaoz
发表于 2024-12-25 23:44:33
解题思路 这是一道字符串处理题目,主要思路如下: 特殊情况处理: 长度为1:结果为0 长度为2:如果两字符相同为0,不同为2 一般情况处理: 从头部开始统计连续黑白相间的长度(headLen) 从尾部开始统计连续黑白相间的长度(tailLen) 统计中间部分的最长黑白相间长度 如果首尾 展开全文