比較版本號

2021-10-11 15:51:06 字數 1720 閱讀 2354

比較版本號

比較兩個版本號 *version1 *和 version2。

如果*version1 *> *version2*返回1,如果*version1 *< *version2*返回-1, 除此之外返回0

你可以假設版本字串非空,並且只包含數字和.字元。

.字元不代表小數點,而是用於分隔數字序列。

例如,2.5不是「兩個半」,也不是「差一半到三」,而是第二版中的第五個小版本。

你可以假設版本號的每一級的預設修訂版號為0。例如,版本號3.4的第一級(大版本)和第二級(小版本)修訂號分別為34。其第**和第四級修訂號均為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」。

版本字串由以點 (.) 分隔的數字字串組成。這個數字字串可能有前導零。

版本字串不以點開始或結束,並且其中不會有兩個連續的點。

方法一:分割+解析,兩次遍歷,線性空間

將兩個字串按點字元分割成塊,然後逐個比較這些塊

如果兩個版本號的塊數相同,則可以有效工作。如果不同,則需要在較短字串末尾補充相應的 .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 ...