SP21284 EMTY3 - Can You Make It Empty 3
题目描述
有一个叫作 `CanEmpty()` 的函数,它以字符串P作为参数,如果可以通过一系列操作使P为空则返回 TRUE,否则返回 FALSE。
字符串 $P$ 只由0和1组成。`CanEmpty()` 函数的伪代码实现如下。
```cpp
bool CanEmpty(String P)
{
while (P含有至少一个为“100”的字串)
{
删除P中任意一个为“100”的字串
}
if (P为空) return TRUE;
else return FALSE;
}
```
现在你得到了一个由0和1组成的字符串 $S$,你需要求 $S$ 中最长的、用 `CanEmpty` 算法可以使其为空的子串的长度。
举个例子,设 S=101**110000**0**100**
当前情况 $S$ 只有两个子字符串(以粗体展示)可以用 `CanEmpty` 算法使其为空。
第一个子字符串在 `CanEmpty` 函数中有可以删除的字串
1**100**00 -> **100** -> 空串
第二个子字符串在 `CanEmpty` 函数中也有可以删除的字串
**100** -> 空串
第一个子串的长度是6,第二个子串的长度是3。所以答案是6。
输入格式
给定整数 $T(T≤100)$,表示有 $T$ 组数据
每组数据包含一个字符串 $s$,字符串的长度不超过200000。
输出格式
对于每组数据,输出其编号和最长字串长度
### 输入输出样例
#### 输入
```
2
1011100000100
111011
```
#### 输出
```
Case 1: 6
Case 2: 0
```