网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
[HAOI2009]求回文串
成绩 | 0 | 开启时间 | 2013年02月21日 星期四 23:02 |
折扣 | 0.8 | 折扣时间 | 2013年02月28日 星期四 23:02 |
允许迟交 | 是 | 关闭时间 | 2013年02月28日 星期四 23:02 |
输入文件 | string!.in | 输出文件 | string!.out |
试题描述
所谓回文串,就是对于给定的字符串,正着读和反着读都一样,比如 ABCBA 就是一个回文串, ABCAB 则不是。我们的目标是对于任意输入的字符串,不断将第 i 个字符和第 i+1 个字符交换,使得该串最终变为回文串。求最少交换次数。
数据输入
在文本文件 string!.in 中包含一个由大写字母字母组成的字符串。
数据输出
在文本文件 string!.out 中写入一个整数。若能经过有限次操作能将原串变为回文串,则输出最少操作次数;否则输出 -1 。
样例输入
SHLLZSHZS
样例输出
4
样例说明
1 .交换 L 和 Z 变成 SHL ZL SHZS
2 .交换 L 和 Z 变成 SH ZL LSHZS
3 .交换 L 和 S 变成 SHZL SL HZS
4 .交换 H 和 Z 变成 SHZLSL ZH S
测试数据范围
40% 的数据, N ≤ 50000
100% 的数据, N ≤ 10^6