问题 3230 --IOI 串(ioi)

3230: IOI 串(ioi)

时间限制: 1 Sec  内存限制: 256 MB
提交: 10  解决: 1
[提交][状态][讨论版][命题人:]

题目描述

小明对字符串"IOI"怀有特殊的感情,他定义一种由大写英文字母 'I' 和 'O' 构成的 字符串为 “好串” ,当且仅当它可以被划分为三个非空部分,依次为: 

第一部分:连续若干个 'I' 

第二部分:连续若干个 'O' 

第三部分:连续若干个 'I' 

如: "IIIOOIIII" 是一个好串,"IOI"也是一个好串; "OIOI","IIO" 都不是好串。 

现在,小明有一个长度为 n 的字符串 S,且 S 仅包含字符 'I' 和 'O'。 他可以进行任意次修改操作,每一次操作可将字符串中某一个位置的字符替换成另一个字符(即把 'I' 改为 'O',或把 'O' 改为 'I')。 例如: 当 S="IIIOOOIOOII" 时,根据上述定义,S 不是一个“好串”,但小明可以有多种方法 通过修改操作把 S 变为“好串”: 

方法 1:把第 7 个字符 'I' 改为 'O',经过 1 次操作得到 "IIIOOOOOOII"; 

方法 2:分别把第 8 个和第 9 个字符 'O' 改为 'I',经过 2 次操作得到 "IIIOOOIIIII"。 

可以确定,至少经过 1 次修改操作才能把上面的字符串 S 变为“好串”。 

你的任务: 

告诉你小明的字符串 S,请你帮小明计算,至少需要进行多少次修改操作,才能将字符串 S 变为一个“好串”。如果 S 已经是一个“好串”,输出 0.

输入

一行,仅由'I'和'O'两种字符组成的字符串 S。

输出

一行,包含一个整数,表示把字符串 S 修改为“好串”需要的最少的修改次数

样例输入

【样例 1 输入】
IIIOOOIOOII
【样例 2 输入】
IOOIOOIOOOII

样例输出

【样例 1 输出】
1
【样例 2 输出】
2

提示