题目要求
思路
1.因为字符串比较大小不方便,并且因为需要去掉前导的0,这个0我们并不知道有几个,将字符串转换为数字刚好能避免。
2.当判断到符号位的时候加加,跳过符号位。
3.判断数字大小,来决定版本号大小
4.核心代码
while(i < n1 && version1[i] != '.'){num1 = num1 * 10 + (version1[i] - '0');i++;}
代码实现
class Solution {
public:int compare(string version1, string version2) {int n1 = version1.size();int n2 = version2.size();int i = 0;int j = 0;while(i < n1 || j < n2){long long num1 = 0;while(i < n1 && version1[i] != '.'){num1 = num1 * 10 + (version1[i] - '0');i++;}i++;long long num2 = 0;while(j < n2 && version2[j] != '.'){num2 = num2 * 10 + (version2[j] - '0');j++;}j++;if (num1 > num2)return 1;if (num1 < num2)return -1;}return 0;}
};