题目描述
比较两个版本号 version1 和 version2。如果 *version1* > *version2*
返回 1
,如果 *version1* < *version2*
返回 -1
, 除此之外返回 0
。
输入: version1 = "7.5.2.4", version2 = "7.5.3"
输出: -1
解题思路
这道题如果用python或java的split
函数会很方便,用C++的话,学习一下C++的istringstream
的使用就好。
参考代码
// 分别提取'.'和数字:
class Solution {
public:
int compareVersion(string version1, string version2) {
char c; //提取'.'
int num1, num2; //提取数字
istringstream ist1(version1);
istringstream ist2(version2);
while(bool(ist1>>num1) + bool(ist2>>num2)) // 如果ist1还有数字输出就返回1,否则返回0,以此判断两个字符串是否比较完
{
if(num1 > num2) return 1;
if(num1 < num2) return -1;
num1=0;
num2=0;
ist1>>c;
ist2>>c;
}
return 0;
}
};