luogu#P9012. [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 QQ new strings (1Q100)(1 \le Q \le 100), 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 QQ strings into MOO using the following operations:

  1. Replace either the first or last character with its opposite (so that 'M' becomes 'O' and 'O' becomes 'M').
  2. 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 1−1 if this is impossible.

输入格式

The first line of input contains the value of QQ.

The next QQ lines of input each consist of a string, each of its characters either M or O. Each string has at least 11 and at most 100100 characters.

输出格式

Output the answer for each input string on a separate line.

题目大意

题目描述

农夫约翰给了奶牛贝西 QQ 个新字符串 (1Q100)(1\le Q\le100) ,其中只有字符 MO ,她想将 QQ 个字符串都变成 MOO

贝西可以用如下的方式改变字符串:

  • 用相反的字符替换第一个或最后一个字符(将 M 变成 O ,将 O 变成 M )。
  • 删除第一个或最后一个字符。

贝西只想用最少的次数完成改变。请你帮她找到需要的最小改变次数。如果不可能在有限的步数中完成这个任务,请输出 -1

输入格式

输入数据的第一行是一个正整数 QQ

接下来的 QQ 行中,每行一个只包含大写字母 MO 的字符串 SS ,保证 1S100 1\le |S| \le 100

输出格式

输出 QQ 行,每行为该测试点最小操作次数,如果不可能在有限的步数中完成这个任务,请输出 -1

提示

样例解释 1

将第一个字符串转换为 MOO44 个操作序列如下:

  • 用O替换最后一个字符(操作1)
  • 删除第一个字符(操作2)
  • 删除第一个字符(操作2)
  • 删除第一个字符(操作2)

可以证明,第二个字符串无法转换为 MOO

第三个字符串已经是 MOO,因此无需执行任何操作。

数据范围

对于 100%100\% 的测试点,保证 1Q1001 \le Q \le 100, 1S100 1\le |S| \le 100

3
MOMMOM
MMO
MOO
4
-1
0

提示

Explanation for Sample 1

A sequence of 44 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 242-4: Every string has length at most 33.
  • Inputs 5115-11: No additional constraints.