#codefestival2017qualcc. [code_festival_2017_qualc_c]Inserting 'x'

[code_festival_2017_qualc_c]Inserting 'x'

题目描述

我们有一个由小写英文字母组成的字符串 ss。Snuke 可以反复进行以下操作:

  • ss 的任意位置(包括 ss 的开头和结尾)插入字母 x

Snuke 的目标是将 ss 转变为一个回文串。判断是否可以实现这个目标。如果可以实现,找出所需的最少操作次数。

注意事项

一个 回文串 是一个从前往后读和从后往前读都一样的字符串。例如,aaaabbaabcba 是回文串,而 ababababcda 不是回文串。

约束条件

  • 1s1051 \leq |s| \leq 10^5
  • ss 由小写英文字母组成。

输入

输入从标准输入中按以下格式给出:

ss

输出

如果可以实现目标,请输出所需的操作次数。如果不可以实现目标,请输出 -1


示例输入1

xabxa

示例输出1

2

一种可行方案如下(新插入的 x 用粗体表示):

xabxa → xaxbxa → xaxbxax


示例输入2

ab

示例输出2

-1

无法通过一系列操作将 ss 转变为回文串。


示例输入3

a

示例输出3

0

ss 已经是一个回文串。


示例输入4

oxxx

示例输出4

3

一种可行方案如下:

oxxx → xoxxx → xxoxxx → xxxoxxx