LeetCode--165. Compare Version Numbers
阿新 • • 發佈:2018-12-17
題目連結:https://leetcode.com/problems/compare-version-numbers/
一大早看到如此簡單的題似乎膨脹了,這個不就是字串排序(比較)的子問題嘛,比較一下就完了,於是咔咔咔寫出了下面的無腦程式碼:
class Solution { public int compareVersion(String version1, String version2) { int minLength=Math.min(version1.length(),version2.length()); int i=0; for(;i<minLength;i++) { if(version1.charAt(i)<version2.charAt(i)) return -1; else if(version1.charAt(i)>version2.charAt(i)) return 1; } if(version1.length()>i) return 1; if(version2.length()>i) return -1; return 0; } }
submit後就wrong了,真是naive,根本就沒有考慮字串表達的數字前面可以0開頭,應該。
於是決定將字串轉化成整數進行比較,想了下面的程式碼:
class Solution { public int compareVersion(String version1, String version2) { String[] v1=version1.split("\\."); String[] v2=version2.split("\\."); int minBlock=Math.min(v1.length,v2.length); int i=0; for(;i<minBlock;i++) { int a=Integer.parseInt(v1[i]); int b=Integer.parseInt(v2[i]); if(a<b) return -1; else if(a>b) return 1; else continue; } if(v1.length>i) { while(i<v1.length) { if(Integer.parseInt(v1[i])!=0) return 1; i++; } return 0; } if(v2.length>i) { while(i<v2.length) { if(Integer.parseInt(v2[i])!=0) return -1; i++; } return 0; } return 0; } }
水平真是菜雞!!!