#codefestival2017qualcc. [code_festival_2017_qualc_c]Inserting 'x'
[code_festival_2017_qualc_c]Inserting 'x'
题目描述
我们有一个由小写英文字母组成的字符串 。Snuke 可以反复进行以下操作:
- 在 的任意位置(包括 的开头和结尾)插入字母
x
。
Snuke 的目标是将 转变为一个回文串。判断是否可以实现这个目标。如果可以实现,找出所需的最少操作次数。
注意事项
一个 回文串 是一个从前往后读和从后往前读都一样的字符串。例如,a
,aa
,abba
和 abcba
是回文串,而 ab
,abab
和 abcda
不是回文串。
约束条件
- 由小写英文字母组成。
输入
输入从标准输入中按以下格式给出:
输出
如果可以实现目标,请输出所需的操作次数。如果不可以实现目标,请输出 -1
。
示例输入1
xabxa
示例输出1
2
一种可行方案如下(新插入的 x
用粗体表示):
xabxa → xaxbxa → xaxbxax
示例输入2
ab
示例输出2
-1
无法通过一系列操作将 转变为回文串。
示例输入3
a
示例输出3
0
已经是一个回文串。
示例输入4
oxxx
示例输出4
3
一种可行方案如下:
oxxx → xoxxx → xxoxxx → xxxoxxx