首页 > 学院 > 开发设计 > 正文

poj1007

2019-11-11 03:31:26
字体:
来源:转载
供稿:网友

题目大意:

题目前半部分讲了字符串的逆序数的概念。接下来输入m个字符串,每个字符串长度为n,把这m个字符串按照逆序数大小从小到达排序

解题思路:

计算每个字符串的逆序数,然后记录从小到大的逆序数的位置,输出即可

代码如下:

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>int main(){ int n,m; int i,sum[120],j,k,max; int record[120]; char str[120][60]; scanf("%d%d",&n,&m); memset(sum,0,sizeof(sum)); memset(record,0,sizeof(record)); for(i=1;i<=m;i++) { getchar(); scanf("%s",str[i]); for(j=0;j<n-1;j++) { for(k=j+1;k<n;k++) { if(str[i][j]-str[i][k]>0) { sum[i]++; } } } } for(i=1;i<=m;i++) { max=1; for(j=2;j<=m;j++) { if(sum[j]>=sum[max]) { max=j; } } record[i]=max; sum[max]=-1; } for(i=m;i>=1;i--) { PRintf("%s/n",str[record[i]]); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表