早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求解C语言高手进可适当加分在线等回文串是一种特殊的字符串,它从左往右读和从右往左读是一样的,有人认为回文串是一种完美的字符串。现在给你一个字符串,它不一定是回文的,请

题目详情
求解C语言 高手进 可适当加分 在线等
回文串是一种特殊的字符串,它从左往右读和从右往左读是一样的,有人认为回文串是一种完美的字符串。现在给你一个字符串,它不一定是回文的,请你计算最少的交换次数使得该字符串变成一个回文串。这里的交换指将字符串中两个相邻的字符互换位置。
例如所给的字符串为”mamad”,第一次交换a和d,得到”mamda”,第二次交换m和d,得到”madma”;第三次交换最后面的m和a,得到”madam”。
编写程序,从键盘读入数据。第一行是一个整数N(N <= 80),表示所给字符串的长度,第二行是所给的字符串,长度为N且只包含小写英文字母。如果所给字符串能经过若干次交换变成回文串,则输出所需的最少交换次数;否则,输出Impossible。
输入输出示例1
5
mamad
3
输入输出示例2
6
aabbcd
Impossible
▼优质解答
答案和解析
#include #include int main() { int n,n1,x,y=0,m=0,i,j,k,tong; char *a,b[81],ch,dan=0; //n表示字符串的字母个数,n1没有用,i,j,k是循环控制变量同时也是数组的下标 //a用来保存待判定的字符串,b用来存...