LeetCode -- Compare Version Numbers
2015-09-11 21:38
190 查看
题目描述:
compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
思路:
1.把用'.'隔开的版本号存入数组中,存为arr1和arr2
2.同时遍历arr1和arr2,比较arr1[i]和arr2[i]的大小,如果不等:如果arr1[i]>arr2[i]返回1,否则返回-1。 在比较时需要注意版本0、以及其中一个版本为空的情况
3.遍历到最后没有发现不等,返回0(相等)
实现代码:
compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
思路:
1.把用'.'隔开的版本号存入数组中,存为arr1和arr2
2.同时遍历arr1和arr2,比较arr1[i]和arr2[i]的大小,如果不等:如果arr1[i]>arr2[i]返回1,否则返回-1。 在比较时需要注意版本0、以及其中一个版本为空的情况
3.遍历到最后没有发现不等,返回0(相等)
实现代码:
public class Solution { public int CompareVersion(string version1, string version2) { var v1 = version1; var v2 = version2; var v1Arr = v1.Split('.'); var v2Arr = v2.Split('.'); var i = 0; var j = 0; while(i < v1Arr.Length || j < v2Arr.Length){ if(i == v1Arr.Length){ return int.Parse(v2Arr[i]) == 0 ? 0 : -1; } if(i == v2Arr.Length){ return int.Parse(v1Arr[i]) == 0 ? 0 : 1; } if(int.Parse(v1Arr[i]) == int.Parse(v2Arr[j])){ i++; j++; continue; } return int.Parse(v1Arr[i]) > int.Parse(v2Arr[j]) ? 1 : -1; } return 0; } }
相关文章推荐
- (4.1.35.3)Android平台程序崩溃的类型及原因列举
- hdu5029Relief grain 线段树
- EJB远程访问和本地访问方式
- Python
- CocoaPods的安装与使用,以及添加ReactiveCocoa
- 项目11.3如何买玫瑰
- 第五章 运动目标检测技术
- 【Java多线程】-生产者与消费者
- CSS布局--浮动与清除
- 获取股票数据的2个简单方法
- uva10106 高精度
- P2P通信原理与实现(C++)
- 数组,二维数组排序
- CSS布局--浮动与清除
- WinServer 之 发布WebService后调用出现" The test form is only available for requests from the local machine. "
- Oracle学习笔记20150911pl/sql编程
- 今天聊梦想
- 如何用自己的js文件加载一些动态数据
- 左值与右值
- lufylegend学习笔记之二