博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
165. Compare Version Numbers
阅读量:6701 次
发布时间:2019-06-25

本文共 2350 字,大约阅读时间需要 7 分钟。

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.

You may assume the default revision number for each level of a version number to be 0. For example, version number 3.4 has a revision number of 3 and 4 for its first and second level revision number. Its third and fourth level revision number are both 0.

Example 1:

Input: version1 = "0.1", version2 = "1.1"Output: -1

Example 2:

Input: version1 = "1.0.1", version2 = "1"Output: 1

Example 3:

Input: version1 = "7.5.2.4", version2 = "7.5.3"Output: -1

Example 4:

Input: version1 = "1.01", version2 = "1.001"Output: 0Explanation: Ignoring leading zeroes, both “01” and “001" represent the same number “1”

Example 5:

Input: version1 = "1.0", version2 = "1.0.0"Output: 0Explanation: The first version number does not have a third level revision number, which means its third level revision number is default to "0"

Note:

Version strings are composed of numeric strings separated by dots . and this numeric strings may have leading zeroes.Version strings do not start or end with dots, and they will not be two consecutive dots.

难度:medium

题目:比较两个版本version1和version2.

如果1大于2返回1,1小于2返回-1,否则返回0.假定版本字符串中非空且只含有数字和点。点不是小数点只是用作分隔符。

思路:按点号分割转成数字比较。

Runtime: 1 ms, faster than 89.87% of Java online submissions for Compare Version Numbers.

Memory Usage: 33.1 MB, less than 100.00% of Java online submissions for Compare Version Numbers.

class Solution {    public int compareVersion(String version1, String version2) {        String[] vs1 = version1.split("\\.");        String[] vs2 = version2.split("\\.");        for (int i = 0; i < Math.max(vs1.length, vs2.length); i++) {            int i1 = i < vs1.length ? Integer.parseInt(vs1[i]) : 0;            int i2 = i < vs2.length ? Integer.parseInt(vs2[i]) : 0;            if (i1 - i2 > 0) {                return 1;            }             if (i1 - i2 < 0) {                return -1;            }        }                return 0;    }}

转载地址:http://wnwlo.baihongyu.com/

你可能感兴趣的文章
集合类接口IEnumerable,IEnumerator,ICollection,IList,IDictionary理解
查看>>
tkinter的GUI设计:界面与逻辑分离(二)-- 菜单栏
查看>>
Visual Studio DSL 入门 8---创建状态机元数据模型
查看>>
如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]
查看>>
LiDAR Textbook & Automated Road Network Extraction
查看>>
java并行体系结构
查看>>
探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存)
查看>>
ArcGIS Javascript API 1.2 Released
查看>>
命令行构建Unity项目
查看>>
C# ArrayList(数组列表)
查看>>
新近碰到的病毒(TR.Spy.Babonock.A)
查看>>
Eliminate Witches!
查看>>
ToString格式化
查看>>
HDU 4819 Mosaic D区段树
查看>>
js小技巧
查看>>
拖动条SeekBar及星级评分条
查看>>
分享20个Android游戏源码,希望大家喜欢哈!
查看>>
Metro Style App开发快速入门 之文件选择总结
查看>>
部分背包问题的贪心算法正确性证明
查看>>
AutoCAD 命令统计魔幻球的实现过程--(2)
查看>>