[LeetCode] 165、比较版本号

题目描述

比较两个版本号 version1version2。如果 *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;
    }
};
发布了436 篇原创文章 · 获赞 626 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/ft_sunshine/article/details/104096799