题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
class Solution {
public:
int compare(string version1, string version2) {
int n = version1.size();
int m = version2.size();
int i = 0;
int j = 0;
while (i < n || j < m) {
long num1 = 0;
while (i < n && version1[i] != '.') {
num1 = num1 * 10 + version1[i] - '0';
i++;
}
i++;
long num2 = 0;
while (j < m && version2[j] != '.') {
num2 = num2 * 10 + version2[j] - '0';
j++;
}
j++;
if (num1>num2) {
return 1;
}
if (num1<num2) {
return -1;
}
}
return 0;
}
};
比较版本号:
两个版本号为两组字符串,字符串可以按照索引访问具体字符。
思路:按照'.'字符将数字拆分,并将'.'字符前边的数字转换成十进制数记录起来。
ps:字符串转int类型数字可以使用'某字符' - '0'得到对应int数。
从高到低位,依次比较
查看7道真题和解析
