题目描述
比较两个版本号 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);
// 如果ist1还有数字输出就返回1,否则返回0,以此判断两个字符串是否比较完
while(bool(ist1>>num1) + bool(ist2>>num2)){
if(num1 > num2) return 1;
if(num1 < num2) return -1;
num1 = 0; // 必须指定默认值为0 防止 “1” “1.1” 这种出错
num2 = 0;
ist1 >> c;
ist2 >> c;
}
return 0;
}
};
本文详细解析了如何比较两个版本号的大小,通过具体实例演示了使用C++的istringstream进行版本号比较的方法,适用于编程爱好者和技术人员学习和参考。
686

被折叠的 条评论
为什么被折叠?



