LeetCode0165-版本号对比
给两个版本号,返回版本号的对比结果
public class Num165_compareversion { public static int compareVersion(String version1, String version2) { String[] s1 = version1.split("\\."); String[] s2 = version2.split("\\."); int l1 = s1.length-1; int l2 = s2.length-1; int l = Math.max(l1,l2); int result =0,i=0; // 注意这里,我用了 for循环,错误了 // 然后是i<=l,不是i<l while(i<=l){ String num1 = i<=l1? s1[i]:"0"; String num2 = i<= l2? s2[i]:"0"; result = compare(num1,num2); if(result ==0){ i++;} else{return result;} } return 0; } public static int compare(String nums1,String nums2){ // 去掉前导0 String numsa = delete0(nums1); String numsb = delete0(nums2); int l1 = numsa.length(); int l2 = numsb.length(); if(l1<l2) return -1; else if(l1>l2) return 1; else { for(int i=0;i<l1;i++){ if(numsa.charAt(i)-numsb.charAt(i)>0){ return 1; } else if (numsa.charAt(i)-numsb.charAt(i)<0){ return -1; } } } return 0; } public static String delete0(String nums){ int i=0; while(i< nums.length() && nums.charAt(i)=='0') i++; return nums.substring(i); } public static void main(String[] args) { int result = compareVersion("1.0.1","1"); System.out.println(result); } }