hihoCoder1678 版本号排序
#1678 : 版本号排序
描述
小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 版本号排序相关推荐
- mysql去掉小数点多余0_mysql数据库个性化需求:版本号排序
概述 今天主要介绍一个MySQL数据库版本号排序问题,一起来看看吧~ 需求 按版本号排序,版本号字段为字符类型,其中1.2.10应大于1.2.9,但mysql数据库会认为1.2.9大于1.2.1 正确 ...
- clistctrl获取选中行数据_Power Query基础6:筛选、排序、删重复行
本文通过一个例子,综合体现常用的数据筛选.排序.删重复行的操作方法.数据样式及要求如下: 要求: 1. 剔除状态为"已取消"的合同: 2. 对合同按合同号.协 ...
- maven的版本号version的总结及理解
maven的版本号version的总结及理解 本文目的 接上一篇,maven的基本概念介绍,大概了解maven里边的坐标.仓库的概念.其中,坐标里有版本号<version>这个标签 ...
- js数组按中文拼音排序_收藏 | JS开发必须知道的41个技巧
作者:火狼https://cloud.tencent.com/developer/article/1666138 JS是前端的核心,但有些使用技巧你还不一定知道: 本文梳理了JS的41个技巧,帮助大家 ...
- 分布式数据库产品总结
分布式数据库产品总结 Pivotal Greenplum Database(GPDB) 架构 查询计划并执行 查询优化 索引 blink tree 执行器 数据shuffle 分布式事务 2PC gp ...
- linux sort命令 性能,Linux sort 命令简单使用
求助 -g与-n命令的差别还有待研究,如有知道的小伙伴不吝赐教. 常用命令 按ASCII码从小到大排序输出 sort test.txt 按ASCII码从大到小排序输出 sort -r test.txt ...
- apache mod_autoindex 详解
mod_autoindex的作用是生成目录索引,类似于unix的ls命令,或者是win32的dir命令 当从服务器请求一个目录的时候,可能来自: mod_dir的DirectoryIndex指定首页 ...
- 大据数技术之高频面试题8.0.9
尚硅谷大数据技术之高频面试题 (作者:尚硅谷大数据研发部) 配套视频 版本:V8.0 尚硅谷大数据研发部 目录 第1章 项目涉及技术 12 1.1 Linux&Shell 12 1.1.1 L ...
- 2021 字节前端面试题汇总
自我介绍.项目介绍 (1)怎么学习前端的,看了哪些书 (2)实现左中右三栏布局,左右固定宽度,中间自适应 (3)var. let. const的区别(重点) (4)看代码说输出 var length ...
最新文章
- 《用户故事与敏捷方法》阅读笔记一
- ABAP DOI详解(2)
- fill value must be in categories解决一例
- Tensorflow官方文档---起步 MNIST示例
- 装B指南之使用浏览器播放电影
- ByteBuffer 转 InputStream
- ExtAspNet发展规划
- 学习LINQ,发现一个好的工具。LINQPad!!
- 多功能便携扩音器,老师上课的好帮手
- Cardhop for Mac(通讯录管理软件)
- 28、ZigBee 开发教程之基础篇—红外对射计数器
- 双系统下Ubuntu完整卸载
- UnityShader源码2017---学习笔记与自我拓展001
- 大学实验室面试总结(机器学习)
- 重构之处理IE浏览器兼容问题
- 免费WiFi等你来上钩
- python如何定义一个函数选择题_Python逻辑题(以下10个选择题有唯一答案,请编写自定义函数judge遍历答案列表并报告正确答案),python,道,汇报...
- UTF-8二进制规范
- 代码版本管理工具Git
- (一)C#Winform导入Excel数据到datagridview控件