比較版本號
比較兩個版本號 *version1 *和 version2。
如果*version1 *> *version2*
返回1
,如果*version1 *< *version2*
返回-1
, 除此之外返回0
。
你可以假設版本字串非空,並且只包含數字和.
字元。
.
字元不代表小數點,而是用於分隔數字序列。
例如,2.5
不是「兩個半」,也不是「差一半到三」,而是第二版中的第五個小版本。
你可以假設版本號的每一級的預設修訂版號為0
。例如,版本號3.4
的第一級(大版本)和第二級(小版本)修訂號分別為3
和4
。其第**和第四級修訂號均為0
。
示例 1:
輸入:示例 2:*version1*
= "0.1",*version2*
= "1.1"輸出:-1
輸入:示例 3:*version1*
= "1.0.1",*version2*
= "1"輸出:1
輸入:示例 4:*version1*
= "7.5.2.4",*version2*
= "7.5.3"輸出:-1
輸入:version1 = "1.01", version2 = "1.001"示例 5:輸出:0
解釋:忽略前導零,「01」 和 「001」 表示相同的數字 「1」。
輸入:version1 = "1.0", version2 = "1.0.0"輸出:0
解釋:version1 沒有第**修訂號,這意味著它的第**修訂號預設為 「0」。
版本字串由以點 (.
) 分隔的數字字串組成。這個數字字串可能有前導零。
版本字串不以點開始或結束,並且其中不會有兩個連續的點。
方法一:分割+解析,兩次遍歷,線性空間
將兩個字串按點字元分割成塊,然後逐個比較這些塊
如果兩個版本號的塊數相同,則可以有效工作。如果不同,則需要在較短字串末尾補充相應的 .0 塊數使得塊數相同
public int compareversion(string version1, string version2)
}return 0;
}
方法二:雙指標,一次遍歷,常數空間 比較版本號
題目 比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 ...
比較版本號
比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...
版本號比較方法
在開發中大家應該會遇到版本公升級的問題,那麼怎麼對比版本號呢?特別是有的時候版本號長度還不等 如 高版本號為6.8.0 而本地版本號為6.7.0.1 如果是一般的位數相等的版本號解決方法可以是 1.去掉版本號中的 然後轉成float等數字進行對比即可。2.迴圈挨個字元對比,遇到不等的即可break ...