码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode]Compare Version Numbers

时间:2015-01-01 00:03:30      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

本人的做法是转化成vector再处理,各种情况就比较简单了。

class Solution {
public:
    int compareVersion(string version1, string version2) {
        vector<int> v1 = convert(version1);
        vector<int> v2 = convert(version2);
        int size = min(v1.size(), v2.size());
        for (int i = 0; i < size; i++) {
            if (v1[i] < v2[i]) {
                return -1;
            } else if (v1[i] > v2[i]) {
                return 1;
            }
        }
        if (v1.size() > size) return 1;
        if (v2.size() > size) return -1;
        return 0;
    }
    
    vector<int> convert(string &version) {
        vector<int> result;
        int len = version.size();
        int num = 0;
        for (int i = 0; i < len; i++) {
            if (version[i] == ‘.‘) {
                result.push_back(num);
                num = 0;
            } else {
                num = num * 10 + (version[i] - ‘0‘);
            }
        }
        result.push_back(num);
        while (result.back() == 0) {
            result.pop_back();
        }
        return result;
    }
};

  

[leetcode]Compare Version Numbers

标签:

原文地址:http://www.cnblogs.com/lautsie/p/4196777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!