思路:利用小数点来分开求和,判断和是否相等来推断两个版本号是否一致
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;}
};