Problem G: 规范序排列

Time Limit: 1 Sec  Memory Limit: 16 MB
Submit: 1127  Solved: 651
[Submit][Status][Web Board]

Description

规范序是一种对字符串比较的排序规则,定义如下:

1 串长小的排在前面;
2 相同串长的按照字典序排列顺序。

串的字典序遵循如下递归定义:

1 两串的前n-1个字符相同,第n个字符字典序小的排在前面;
2 只有两串的字符完全相同时,才有两串相等。

字符的字典序即按照字母排列的顺序,即a, b, ..., z。ASCII码范围内的字符串的字典序比较可以用strcmp()函数(原型和功能见HINT)完成。

Input

第一行输入为一个整数N(N<=100),后接N行,每行一个字符串。每个字符串仅由小写字母“a”~“z”组成,长度不超过10个字符。

Output

输出为N行,按照字符串的规范序排列,规范序小的排前面。

Sample Input

10
abc
bc
aca
ca
c
aac
aba
bc
da
ba

Sample Output

c
ba
bc
bc
ca
da
aac
aba
abc
aca

HINT

原型: int strcmp(const char *s1,const char * s2);
功能:比较字符串s1和s2。
当s1<s2时,返回值<0
当s1==s2时,返回值=0
当s1>s2时,返回值>0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct hehe
{char zf[15];int len;
};
int main()
{int N;struct hehe ch[105];scanf("%d",&N);int g = 0;for(g = 0; g < N;g++){scanf("%s",ch[g].zf);ch[g].len = strlen(ch[g].zf);}int i,j;for(i = 0;i < N;i++)for(j = N-1;j > i;j--){if (ch[i].len > ch[j].len){struct hehe temp;temp = ch[i];ch[i] = ch[j];ch[j] = temp;}}for(i = 0;i < N;i++)for(j = N-1;j > i;j--){int t = strcmp(ch[i].zf,ch[j].zf);if (t > 0 && ch[i].len == ch[j].len){struct hehe temp;temp = ch[i];ch[i] = ch[j];ch[j] = temp;}}for(g = 0; g < N;g++){puts(ch[g].zf);}return 0;
}/**************************************************************Problem: 1247User: 201401061013Language: CResult: AcceptedTime:0 msMemory:748 kb
****************************************************************/

Problem G: 规范序排列相关推荐

  1. codevs 1013 求先序排列

    题目链接:http://codevs.cn/problem/1013/ 题目描述 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度< ...

  2. T1013 求先序排列 codevs

    http://codevs.cn/problem/1013/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果 题目描述 Descripti ...

  3. linux按照目录大小降序排列,Linux du命令查看文件夹大小并按降序排列

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

  4. linux du命令 前多少个,Linux du命令查看文件夹大小并按降序排列

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

  5. linux反序排列文件,关于linux vim命令 总结

    第 11 页 反序排列的方法: 反序排列的方法: 首先到要反序的第一行,用mt标注当前位置,然后到要替换的反序的最后一行,输入命令:'t+1,.g/^/m 't 可以用.范围(global默认是%)然 ...

  6. Problem G: 求余数

    Problem G: 求余数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 2437  Solved: 666 Description 现在有n(1 ...

  7. 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。 -- Shirley对比编程珠玑 inShirley

    http://www.cppblog.com/richbirdandy/archive/2008/09/26/61426.html 题目和基本思路都来源网上,本人加以整理. 题目:在一个文件中有 10 ...

  8. Problem G: Array C

    Problem G: Array C Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 0  Solved: 0 Description Giving t ...

  9. linux按文件大小显示,Linux显示按文件大小降序排列

    Linux显示按文件大小降序排列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -ls 总用量 56 12 -rw-r--r-- 1 youhaidon ...

最新文章

  1. c语言怎么输入学号姓名,c语言如何输入编号和姓名
  2. 解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
  3. Intel GPU及NVIDIA GPU对视频编解码支持情况
  4. 观察+|腾讯网易终获游戏版号,但all in 游戏时代已结束
  5. java构造方法,构造代码块,静态代码块的执行顺序
  6. Halcon图像预处理与形态学(图像的点运算)
  7. vivado-Matlab联合仿真FIR滤波器
  8. Linux编译后运行,OpenCV2.3.0编译后运行的问题
  9. java认证,ocjp认证,jdk1.8,全流程介绍
  10. IPD解读——IPD流程
  11. 【转】前端开发设计必备的Chrome插件
  12. 微信支付商户平台的apikey与公众平台的appsecret的区别
  13. JavaScript斐波那契数列兔子问题
  14. SQL server Date函数之CONVERT()函数
  15. MySQL的auto_increment使用
  16. Java 模板变量替换——字符串替换器
  17. 函数模板、类模板(含模板特化)
  18. Day07-课程分类管理-课程分类显示前端-p104
  19. 深入理解什么是LSM-Tree
  20. 响应式微服务_低风险整体式微服务演进第二部分

热门文章

  1. JSP使用Struts1提交中文表单时乱码,字符编码问题
  2. android plc,基于Android的智能PLC操控软件设计与实现
  3. 国家气候气象观测站分类
  4. python 豆瓣源_使用douban源下载python包
  5. matlab换挡程序,一种基于MATLAB换挡过程中快速锁定分析数据的方法与流程
  6. 服务器添加html扩展,html5 – 服务器可扩展性 – HTML 5 websockets和彗星
  7. 内嵌html5,显示:内嵌HTML5元素
  8. vmbackup和vmrestore是何方神圣?
  9. 安装vs2013出现此预许可证已过期--解决办法
  10. Chrome源码剖析 上--多线程模型 进程通信 进程模型