LeetCode 165. 比较版本号
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 165. 比较版本号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
比較兩個版本號 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假設版本字符串非空,并且只包含數字和 . 字符。
. 字符不代表小數點,而是用于分隔數字序列。
例如,2.5 不是“兩個半”,也不是“差一半到三”,而是第二版中的第五個小版本。
你可以假設版本號的每一級的默認修訂版號為 0。例如,版本號 3.4 的第一級(大版本)和第二級(小版本)修訂號分別為 3 和 4。其第三級和第四級修訂號均為 0。
示例 1: 輸入: version1 = "0.1", version2 = "1.1" 輸出: -1示例 2: 輸入: version1 = "1.0.1", version2 = "1" 輸出: 1示例 3: 輸入: version1 = "7.5.2.4", version2 = "7.5.3" 輸出: -1示例 4: 輸入:version1 = "1.01", version2 = "1.001" 輸出:0 解釋:忽略前導零,“01” 和 “001” 表示相同的數字 “1”。示例 5: 輸入:version1 = "1.0", version2 = "1.0.0" 輸出:0 解釋:version1 沒有第三級修訂號,這意味著它的第三級修訂號默認為 “0”。提示: 版本字符串由以點 (.) 分隔的數字字符串組成。這個數字字符串可能有前導零。 版本字符串不以點開始或結束,并且其中不會有兩個連續的點。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/compare-version-numbers
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int compareVersion(string v1, string v2) {int n1, n2, i, j;for(i=0,j=0; i < v1.size() || j < v2.size(); ++i,++j){n1=n2=0;while(i < v1.size() && v1[i] != '.')n1 = n1*10 + v1[i++]-'0';while(j < v2.size() && v2[j] != '.')n2 = n2*10 + v2[j++]-'0';if(n1 > n2)return 1;else if(n1 < n2)return -1;}return 0;} };總結
以上是生活随笔為你收集整理的LeetCode 165. 比较版本号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 687. 最长同值路径
- 下一篇: LeetCode 114. 二叉树展开为