编程题
### 问题描述
小然是一名资深的密码解码师,他在研究一种神秘的二进制密码。这种密码由长度为 $N$ 的二进制字符串 $S$ 组成,其中只包含数字 $0$ 和 $1$。小然发现了一种操作可以帮助他解密:
- 选择字符串 $S$ 的任意子字符串;
- 从 $S$ 中移除选中的子字符串;
- 将剩余部分拼接起来。
小然想找出通过最多执行一次上述操作,能得到的最长的全 $1$ 前缀长度。
注意:字符串的前缀是通过删除字符串末尾的一些(可能为零)字符得到的。
### 输入格式
第一行输入一个整数 $T$,表示测试用例的数量。
每个测试用例包含两行:
- 第一行输入一个整数 $N$,表示二进制字符串的长度。
- 第二行输入一个长度为 $N$ 的二进制字符串 $S$。
### 输出格式
对于每个测试用例,输出一个整数,表示通过最多执行一次操作后,能得到的最长的全 $1$ 前缀长度。
### 样例输入
```text
3
4
1010
6
011011
11
01011011101
```
### 样例输出
```text
2
2
3
```
### 说明
- 在第一个测试用例中,小然可以选择子字符串 $S[2,2]=0$。移除子字符串后,剩余部分为 $1$ 和 $10$。拼接这些部分,得到的最终字符串为 $110$。最终字符串中最长的全 $1$ 前缀为 $11$,长度为 $2$。
- 在第二个测试用例中,小然可以选择子字符串 $S[1,4]=0110$。移除子字符串后,剩余部分为 $11$。最终字符串中最长的全 $1$ 前缀为 $11$,长度为 $2$。
- 在第三个测试用例中,小然可以选择子字符串 $S[1,6]=010110$。移除子字符串后,剩余部分为 $11101$。最终字符串中最长的全 $1$ 前缀为 $111$,长度为 $3$。
### 评测数据范围
$1 \leq T \leq 1000$。
$2 \leq N \leq 2 \times 10^5$。
在所有测试用例中,$N$ 的总和不超过 $2 \times 10^5$。