从版本号中提取数字, 默认是0, 直到两个字符串都匹配完了, 仍然没有找到更大的, 则返回0(循环外)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution {
public int compareVersion(String version1, String version2) { char[] s1 = version1.toCharArray(); char[] s2 = version2.toCharArray(); int i1 = 0, i2 = 0; while (i1 < s1.length || i2 < s2.length) { int num1 = 0, num2 = 0; for (; i1 < s1.length && s1[i1] != '.'; i1++) { num1 = (s1[i1] - '0') + num1 * 10; } i1++; for (; i2 < s2.length && s2[i2] != '.'; i2++) { num2 = (s2[i2] - '0') + num2 * 10; } i2++; if (num2 > num1) return -1; else if (num1 > num2) return 1; } return 0; } }
|