题目描述
https://leetcode-cn.com/problems/compare-version-numbers/
解法1:我的解法
class Solution {
public:
int compareVersion(string version1, string version2) {
int m = version1.size();
int n = version2.size();
int i = 0, j = 0;
while (i < m || j < n) {
int d1 = 0, d2 = 0;
while (i < m && version1[i] != '.') {
d1 = d1 * 10 + version1[i++] - '0';
}
while (j < n && version2[j] != '.') {
d2 = d2 * 10 + version2[j++] - '0';
}
if (d1 > d2) {
return 1;
} else if (d1 < d2) {
return -1;
} else {
i++;
j++;
}
}
return 0;
}
};
思路:这个和43字符串乘法,415字符串相加很像,所以我写完那两题之后写了这个。
注意编码习惯的规范,能减少错误。
- 比如 while (i < m && version1[i] != '.') 里面俩条件,我之前写的顺序是相反的,就导致了数组越界。
- int i = 0, j = 0; 不可以简写为int i, j = 0;这种写法导致i的值随机,结果错误。
网友评论