#LUOGUP8156. [USACO23JAN] Moo Operations B
[USACO23JAN] Moo Operations B
题目描述
Because Bessie is bored of playing with her usual text string where the only characters are C
, O
, and W
, Farmer John gave her new strings , where the only characters are M
and O
. Bessie's favorite word out of the characters M
and O
is obviously MOO
, so she wants to turn each of the strings into MOO
using the following operations:
- Replace either the first or last character with its opposite (so that 'M' becomes 'O' and 'O' becomes 'M').
- Delete either the first or last character.
Unfortunately, Bessie is lazy and does not want to perform more operations than absolutely necessary. For each string, please help her determine the minimum number of operations necessary to form MOO
or output if this is impossible.
输入格式
The first line of input contains the value of .
The next lines of input each consist of a string, each of its characters either M
or O
. Each string has at least and at most characters.
输出格式
Output the answer for each input string on a separate line.
题目大意
题目描述
农夫约翰给了奶牛贝西 个新字符串 ,其中只有字符 M
和 O
,她想将 个字符串都变成 MOO
。
贝西可以用如下的方式改变字符串:
- 用相反的字符替换第一个或最后一个字符(将
M
变成O
,将O
变成M
)。 - 删除第一个或最后一个字符。
贝西只想用最少的次数完成改变。请你帮她找到需要的最小改变次数。如果不可能在有限的步数中完成这个任务,请输出 -1
。
输入格式
输入数据的第一行是一个正整数 。
接下来的 行中,每行一个只包含大写字母 M
或 O
的字符串 ,保证 。
输出格式
输出 行,每行为该测试点最小操作次数,如果不可能在有限的步数中完成这个任务,请输出 -1
。
提示
样例解释 1
将第一个字符串转换为 MOO
的 个操作序列如下:
- 用O替换最后一个字符(操作1)
- 删除第一个字符(操作2)
- 删除第一个字符(操作2)
- 删除第一个字符(操作2)
可以证明,第二个字符串无法转换为 MOO
。
第三个字符串已经是 MOO
,因此无需执行任何操作。
数据范围
对于 的测试点,保证 , 。
3
MOMMOM
MMO
MOO
4
-1
0
提示
Explanation for Sample 1
A sequence of operations transforming the first string into MOO
is as follows:
Replace the last character with O
(operation 1)
Delete the first character (operation 2)
Delete the first character (operation 2)
Delete the first character (operation 2)
The second string cannot be transformed into MOO
. The third string is already MOO
, so no operations need to be performed.
Scoring
- Inputs : Every string has length at most .
- Inputs : No additional constraints.