题目链接
英文链接:https://leetcode.com/problems/compare-version-numbers/
中文链接:https://leetcode-cn.com/problems/compare-version-numbers/
题目详述
比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而是用于分隔数字序列。
例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。
你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。其第三级和第四级修订号均为 0。
示例 1:
1 | 输入: version1 = "0.1", version2 = "1.1" |
示例 2:
1 | 输入: version1 = "1.0.1", version2 = "1" |
示例 3:
1 | 输入: version1 = "7.5.2.4", version2 = "7.5.3" |
示例 4:
1 | 输入:version1 = "1.01", version2 = "1.001" |
示例 5:
1 | 输入:version1 = "1.0", version2 = "1.0.0" |
提示:
- 版本字符串由以点 (.) 分隔的数字字符串组成。这个数字字符串可能有前导零。
- 版本字符串不以点开始或结束,并且其中不会有两个连续的点。
题目详解
- 从大版本到小版本逐个比较即可,需要注意两点。
- 注意前导 0。
- 注意版本号不存在时当作 0。
1 | public class LeetCode_00165 { |
上面采用 String#split()
分割字符串得到了版本,我们也可以自己遍历计算得到版本。
1 | public class LeetCode_00165 { |