LeetCode 165. 比較版本號
阿新 • • 發佈:2020-09-20
題目連結
題目思想
這個題沒啥好說的,就是直接模擬即可,但是要注意Integer包裝類的數值大小比較。另外就是字串分割的時候,"."需要轉義處理一下
程式碼實現
class Solution { //Integer不能直接比較大小,要麼拆箱變成int,要麼用equals來比較。 //拆箱可以隱式拆箱,也可以手動呼叫intValue()來拆箱。 public int compareVersion(String version1, String version2) { String[] ver1 = version1.split("\\."); String[] ver2 = version2.split("\\."); int i = 0; int j = 0; while(i < ver1.length && j < ver2.length){ int a = Integer.parseInt(ver1[i]); int b = Integer.parseInt(ver2[j]); if(a == b){ i++; j++; }else if(a < b){ return -1; }else if(a > b){ return 1; } } if(i == ver1.length && j == ver2.length){ return 0; }else if(i == ver1.length){ while(j < ver2.length){ int a = Integer.parseInt(ver2[j]); if(a > 0){ return -1; } j++; } }else if(j == ver2.length){ while(i < ver1.length){ int a = Integer.parseInt(ver1[i]); if(a > 0){ return 1; } i++; } } return 0; } }