回文C语言小难题,盼各位帮忙,谢谢
题目:完美的代价 “回文串”,是一种特殊的字符串,它从左往右和从右往左读是一样的。有人认为回文串
是一种完美的字符串。现在给你一个字符串,它不一定是回文串,请你计算最少的交换次数
使得该串变成一个回文串。这里的交换指将字符串中两个相邻的字符互换位置,例如所给的
字符串为mamad,第一次交换ad,得到mamda;第二次交换md,得到madma;第三次交
换ma,得到madam(回文!完美!)
程序要求从键盘读入数据。第一行是一个整数N(N<=8000),表示所给字符串的长度,
第二行是所给的字符串,长度为N 且只包含小写英文字母。如果所给字符串能经过若干次
交换变成回文串,则输出所需的最少交换次数;否则,输出Impossible。如下面两个例子:
例1:
5
mamad
3
例2:
6
aabbcd
Impossible
想的头要暴掉了,各位大虾帮帮忙吧~~~~~~~~~~~
谢谢……