#1678 : 版本号排序

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Hi在一家互联网巨头公司实习。他发现由于公司不同的部门实在太多了,导致使用的一些开发工具和软件库的版本非常不统一、五花八门。

比如一款工具就有2.96, 3.4.5, 4.8.2, 6.4和7.2几种不同的版本。

现在给出了N个版本号,请你帮助小Hi把这些版本号从旧到新排序。

版本号格式都是若干由'.'连接起来的非负整数。比较版本号新旧时先主版本号(最左的整数)开始,再比较次版本号(第二个整数),以此类推……。

例如2.96 < 3.4.5 < 4.8.2 < 4.8.4 < 4.13 < 6.4 < 7.2

特别的,我们认为NULL小于0,也即1.0 < 1.0.0,4.8.2 < 4.8.2.0。

输入

第一行包含一个整数N。 (1 ≤ N ≤ 100)

以下N行每行一个版本号。 版本号总长度不超过100,主版本号和每个子版本号的数值不超过100

输出

N行,每行一个版本号,从旧到新排列。

样例输入
9
4.8
4.8.2
7.2
2.96
3.4.5
1.0
2
6.4
1.0.0
样例输出
1.0
1.0.0
2
2.96
3.4.5
4.8
4.8.2
6.4
7.2

分析:刚开始直接排序,后来发现不对,考虑12<8.0,数据量比较小,直接暴力。

#include<cstdio>
#include<algorithm>
using namespace std;
struct Node{char s[200];int num;int sum[110];
}a[20000];
int cmp(Node A,Node B)
{int n=min(A.num,B.num);for(int i=0;i<=n;i++){if(A.sum[i]==B.sum[i]) continue;else if(A.sum[i]>B.sum[i]) return 0;else return 1;}if(A.num>B.num) return 0;return 1;
}
int main()
{int N;scanf("%d",&N);for(int i=0;i<N;i++){scanf("%s",a[i].s);int j=0,temp=0;a[i].num=0;while(a[i].s[j]){if(a[i].s[j]=='.'){a[i].sum[a[i].num++]=temp;temp=0;}else temp=temp*10+a[i].s[j]-'0';j++;}a[i].sum[a[i].num]=temp;}sort(a,a+N,cmp);for(int i=0;i<N;i++)printf("%s\n",a[i].s);return 0;
}

View Code

转载于:https://www.cnblogs.com/ACRykl/p/8231843.html

hihoCoder1678 版本号排序相关推荐

  1. mysql去掉小数点多余0_mysql数据库个性化需求:版本号排序

    概述 今天主要介绍一个MySQL数据库版本号排序问题,一起来看看吧~ 需求 按版本号排序,版本号字段为字符类型,其中1.2.10应大于1.2.9,但mysql数据库会认为1.2.9大于1.2.1 正确 ...

  2. clistctrl获取选中行数据_Power Query基础6:筛选、排序、删重复行

    本文通过一个例子,综合体现常用的数据筛选.排序.删重复行的操作方法.数据样式及要求如下: 要求: 1.       剔除状态为"已取消"的合同: 2.      对合同按合同号.协 ...

  3. maven的版本号version的总结及理解

    maven的版本号version的总结及理解 本文目的   ​ 接上一篇,maven的基本概念介绍,大概了解maven里边的坐标.仓库的概念.其中,坐标里有版本号<version>这个标签 ...

  4. js数组按中文拼音排序_收藏 | JS开发必须知道的41个技巧

    作者:火狼https://cloud.tencent.com/developer/article/1666138 JS是前端的核心,但有些使用技巧你还不一定知道: 本文梳理了JS的41个技巧,帮助大家 ...

  5. 分布式数据库产品总结

    分布式数据库产品总结 Pivotal Greenplum Database(GPDB) 架构 查询计划并执行 查询优化 索引 blink tree 执行器 数据shuffle 分布式事务 2PC gp ...

  6. linux sort命令 性能,Linux sort 命令简单使用

    求助 -g与-n命令的差别还有待研究,如有知道的小伙伴不吝赐教. 常用命令 按ASCII码从小到大排序输出 sort test.txt 按ASCII码从大到小排序输出 sort -r test.txt ...

  7. apache mod_autoindex 详解

    mod_autoindex的作用是生成目录索引,类似于unix的ls命令,或者是win32的dir命令 当从服务器请求一个目录的时候,可能来自: mod_dir的DirectoryIndex指定首页 ...

  8. 大据数技术之高频面试题8.0.9

    尚硅谷大数据技术之高频面试题 (作者:尚硅谷大数据研发部) 配套视频 版本:V8.0 尚硅谷大数据研发部 目录 第1章 项目涉及技术 12 1.1 Linux&Shell 12 1.1.1 L ...

  9. 2021 字节前端面试题汇总

    自我介绍.项目介绍 (1)怎么学习前端的,看了哪些书 (2)实现左中右三栏布局,左右固定宽度,中间自适应 (3)var. let. const的区别(重点) (4)看代码说输出 var length ...

最新文章

  1. 《用户故事与敏捷方法》阅读笔记一
  2. ABAP DOI详解(2)
  3. fill value must be in categories解决一例
  4. Tensorflow官方文档---起步 MNIST示例
  5. 装B指南之使用浏览器播放电影
  6. ByteBuffer 转 InputStream
  7. ExtAspNet发展规划
  8. 学习LINQ,发现一个好的工具。LINQPad!!
  9. 多功能便携扩音器,老师上课的好帮手
  10. Cardhop for Mac(通讯录管理软件)
  11. 28、ZigBee 开发教程之基础篇—红外对射计数器
  12. 双系统下Ubuntu完整卸载
  13. UnityShader源码2017---学习笔记与自我拓展001
  14. 大学实验室面试总结(机器学习)
  15. 重构之处理IE浏览器兼容问题
  16. 免费WiFi等你来上钩
  17. python如何定义一个函数选择题_Python逻辑题(以下10个选择题有唯一答案,请编写自定义函数judge遍历答案列表并报告正确答案),python,道,汇报...
  18. UTF-8二进制规范
  19. 代码版本管理工具Git
  20. (一)C#Winform导入Excel数据到datagridview控件

热门文章

  1. 过滤:filter、结果收集(数组)
  2. Android魔法(第三弹)—— 一步步实现对折页面
  3. CentOS7,zabbix3.4通过,zabbix-Java-gateway监控Tomcat
  4. textFiled输入字数的控制问题之—把带输入的拼音也判断了
  5. 编程技巧:使用异或操作符(XOR)交换两数值
  6. 监控Activity的启动等状态--- 源码级
  7. vim编辑器的设置文件
  8. [shell进阶]——shell多线程
  9. django-web聊天
  10. JavaScript数据类型和变量学习小记