Leetcode刷题笔记题解(C++):165. 比较版本号
思路:利用小数点来分开求和,判断和是否相等来推断两个版本号是否一致
class Solution {
public:
int compareVersion(string version1, string version2) {
int i=0;//记录version1的字符下标
int j=0;//记录version2的字符下标
int num1=0;//保存version1的和
int num2=0;//保存version2的和
while(i<version1.length()||j<version2.length()){
//计算version1第一个小数点之前的和
//这里当前乘以10来减少‘0’位的干扰
while(i<version1.length()&&version1[i]!='.'){
num1 = num1+(version1[i]-'0')*10;
i++;
}
//如果为‘.’也需要跳过
i++;
//计算version2第一个小数点之前的和
while(j<version2.length()&&version2[j]!='.'){
num2 = num2+(version2[j]-'0')*10;
j++;
}
//如果为‘.’也需要跳过
j++;
//每次小数点之后判断一下两个和的大小
if(num1>num2) return 1;
else if(num1<num2) return -1;
}
return 0;
}
};