早教吧作业答案频道 -->其他-->
英语翻译/*完美的代价一、实验内容与要求回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.有人认为回文串是一种完美的字符串.现在给你一个字符串,它不一定是回文的,请
题目详情
英语翻译
/*完美的代价 一、实验内容与要求 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.有人认为回文串是一种完美的字符串.现在给你一个字符串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个回文串.这里的交换指将字符串中两个相邻的字符互换位置,例如所给的字符串为mamad,第一次交换ad,得到mamda;第二次交换md,得到madma;第三次交换ma,得到madam (回文!完美!) 输入要求:程序要求从键盘读入数据.第一行是一个正整数N(N <= 8000),表示所给字符串的长度,第二行是所给的字符串,长度为N且只包含小写英文字母.输出要求:如果所给字符串能经过若干次交换变成回文串,则输出所需的最少交换次数;否则,输出Impossible.输入示例1:5 (N=5) 输出示例1:3 (表示字符串"mamad"最少需要经过3次交换即可得到回文串!) 输入示例2:6 (N=6) 输出示例2:Impossible (表示字符串"aabbcd"无法转换为回文串!) */ #include <stdio.h> #include <stdlib.h> main() { int n,n1,x,y=0,m=0,i,j,k,tong; char *a,b[27],ch,dan=0; printf("n="); scanf("%d",&n); a=(char *)malloc(sizeof(char)*n+1); a[n]=0; b[0]=0; scanf("%s",a); for(i=0,k=0;i<n;i++) { tong=0; for(j=0;b[j]!=0;j++) if(a[i]==b[j]) tong=1; if(tong==0) { for(j=i+1,x=1;j<n;j++) if(a[i]==a[j]) x++; if(x%2==1) { dan=a[i]; y++; } if(y==2) { printf("Impossible\n\n"); exit(0); } b[k]=a[i]; b[k+1]=0; k++; } } for(i=0;i<n/2;i++) { if(dan!=0) if(a[i]==dan) { ch=a[i]; a[i]=a[i+1]; a[i+1]=ch; m++; } for(j=n-1-i;j>i;j--) if(a[i]==a[j]) { break; } for(k=j;k<n-1-i;k++) { ch=a[k]; a[k]=a[k+1]; a[k+1]=ch; m++; } } printf("%s\n %d\n\n",a,m); getchar(); }
/*完美的代价 一、实验内容与要求 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.有人认为回文串是一种完美的字符串.现在给你一个字符串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个回文串.这里的交换指将字符串中两个相邻的字符互换位置,例如所给的字符串为mamad,第一次交换ad,得到mamda;第二次交换md,得到madma;第三次交换ma,得到madam (回文!完美!) 输入要求:程序要求从键盘读入数据.第一行是一个正整数N(N <= 8000),表示所给字符串的长度,第二行是所给的字符串,长度为N且只包含小写英文字母.输出要求:如果所给字符串能经过若干次交换变成回文串,则输出所需的最少交换次数;否则,输出Impossible.输入示例1:5 (N=5) 输出示例1:3 (表示字符串"mamad"最少需要经过3次交换即可得到回文串!) 输入示例2:6 (N=6) 输出示例2:Impossible (表示字符串"aabbcd"无法转换为回文串!) */ #include <stdio.h> #include <stdlib.h> main() { int n,n1,x,y=0,m=0,i,j,k,tong; char *a,b[27],ch,dan=0; printf("n="); scanf("%d",&n); a=(char *)malloc(sizeof(char)*n+1); a[n]=0; b[0]=0; scanf("%s",a); for(i=0,k=0;i<n;i++) { tong=0; for(j=0;b[j]!=0;j++) if(a[i]==b[j]) tong=1; if(tong==0) { for(j=i+1,x=1;j<n;j++) if(a[i]==a[j]) x++; if(x%2==1) { dan=a[i]; y++; } if(y==2) { printf("Impossible\n\n"); exit(0); } b[k]=a[i]; b[k+1]=0; k++; } } for(i=0;i<n/2;i++) { if(dan!=0) if(a[i]==dan) { ch=a[i]; a[i]=a[i+1]; a[i+1]=ch; m++; } for(j=n-1-i;j>i;j--) if(a[i]==a[j]) { break; } for(k=j;k<n-1-i;k++) { ch=a[k]; a[k]=a[k+1]; a[k+1]=ch; m++; } } printf("%s\n %d\n\n",a,m); getchar(); }
▼优质解答
答案和解析
Rug carpet cleaning is a very crucial part of keeping your house,office and business establishment clean,Louis Vuitton Travel Luggage,sound and beautiful.Normal day-to-day traffic may take a toll on a...
看了英语翻译/*完美的代价一、实验...的网友还看了以下:
具体问题具体分析和一切从实际出发,实事求是的关系是不是一切从实际出发,实事求是是对应具体问题具体分 2020-05-15 …
2.十一届三中全会实现的三大历史转变A.以阶级斗争为纲转到以经济建设为中心B.从封闭半封闭转向对外 2020-06-21 …
又要麻烦你了.一一和丽丽练字.一一已经写了120个,比丽丽多写了96个.从今天开始,改变了计划,一一 2020-11-07 …
在实际工作中,坚持从实际出发,做到主观和客观的统一,不是轻而易举可以做到的。从客观上看,这是因为①客 2020-11-07 …
在实际工作中,要坚持一切从实际出发,主观符合客观,这不是轻易而举就可以做到的。从客观上看,这是因为( 2020-11-07 …
温总理在北大校园勉励青年要脚踏实地才能仰望星空。“脚踏实地”是强调我们要()A.一切从实际出发,实事 2020-11-16 …
世界物质性原理要求我们坚持一切从实际出发,实事求是。(1)什么是一切从实际出发?(2)怎样做到一切从 2020-11-21 …
要坚持正确的政绩观,必须坚持一切从实际出发、实事求是,而在实际工作中坚持从实际出发不是轻而易举可以做 2020-11-27 …
泽民同志指出,我们讲一切从实际出发,最大的实际就是我国正处于并将长期处于社会主义初级阶段。……在中国 2020-11-28 …
在建设社会主义新农村过程中,坚持从各地实际出发,尊重农民意愿,扎实稳步推进新农村建设。这符合唯物辩证 2020-12-02 …