编程题
### 问题描述 鲁滨逊漂流到了一座荒岛上,他随身携带了共 $n$ 个食物,其中一部分是饼干,一部分是鱼干。 鲁滨逊用一个由 $0,1$ 组成的字符串来表示他拥有的食物,其中 $0$ 表示饼干, $1$ 表示鱼干,字符串的长度为 $n$ ,下标从 $1$ 到 $n$ 。 鲁滨逊每天要消耗一些他的食品,他每天食用食物都必须按顺序进行以下两个操作: 1. 设当前字符串的长度为 $l$ ,鲁滨逊将在 $[1,l]$ 之间选择 $i$ ,然后他将从字符串中删去 $s[i]$ ,表示他吃掉了该食物。 2. 若字符串非空,鲁滨逊将会删去该字符串具有相同字符的前缀,表示自己吃掉了这些食物。例如,若此时字符串为 $1110010$ ,那么鲁滨逊执行完这步操作后字符串将会变为 $0010$ 。若字符串为空,鲁滨逊将停止操作。 当字符串为空时,表示鲁滨逊的食物吃完了。鲁滨逊希望你帮他求出按照他的字符串与食用方式,这些食物最多能够他在荒岛上吃多少天。 ### 输入格式 第一行包含一个整数 $n$ ,表示字符串的长度。 第二行包含一个字符串 $s$ ,字符串长度为 $n$ ,字符串中的字符由 $0$ 和 $1$ 组成。 ### 输出格式 输出一个整数,表示这些食物最多够鲁滨逊吃的天数。 ### 样例输入 ``` 6 111010 ``` ### 样例输出 ``` 3 ``` ### 评测数据规模 对于所有评测数据, $1\leq{n}\leq{10^5 }$ 。
查看答案
赣ICP备20007335号-2