165. 比较版本号
生活随笔
收集整理的這篇文章主要介紹了
165. 比较版本号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
165. 比較版本號
給你兩個版本號 version1 和 version2 ,請你比較它們。
版本號由一個或多個修訂號組成,各修訂號由一個 ‘.’ 連接。每個修訂號由 多位數字 組成,可能包含 前導零 。每個版本號至少包含一個字符。修訂號從左到右編號,下標從 0 開始,最左邊的修訂號下標為 0 ,下一個修訂號下標為 1 ,以此類推。例如,2.5.33 和 0.1 都是有效的版本號。
比較版本號時,請按從左到右的順序依次比較它們的修訂號。比較修訂號時,只需比較 忽略任何前導零后的整數值 。也就是說,修訂號 1 和修訂號 001 相等 。如果版本號沒有指定某個下標處的修訂號,則該修訂號視為 0 。例如,版本 1.0 小于版本 1.1 ,因為它們下標為 0 的修訂號相同,而下標為 1 的修訂號分別為 0 和 1 ,0 < 1 。
返回規則如下:
- 如果 version1 > version2 返回 1,
- 如果 version1 < version2 返回 -1,
- 除此之外返回 0。
提示:
- 1 <= version1.length, version2.length <= 500
- version1 和 version2 僅包含數字和 ‘.’
- version1 和 version2 都是 有效版本號
- version1 和 version2 的所有修訂號都可以存儲在 32 位整數 中
解題思路
根據//.分割字符串,然后再對每一個元素進行一一匹配
代碼
class Solution {public int compareVersion(String version1, String version2) {String[] v1 = version1.split("\\.");String[] v2 = version2.split("\\.");int i=0;while (i<v1.length||i<v2.length){int k1=i<v1.length?Integer.parseInt(v1[i]):0;int k2=i<v2.length?Integer.parseInt(v2[i]):0;if (k1>k2) return 1;else if (k1<k2) return -1;i++;}return 0;} }總結
以上是生活随笔為你收集整理的165. 比较版本号的全部內容,希望文章能夠幫你解決所遇到的問題。