LeetCode题解:Compare two version numbers version1 and version2.

来源:互联网 发布:华能营口电厂知乎 编辑:程序博客网 时间:2024/05/22 17:42

Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not “two and a half” or “half way to version three”, it is the fifth second-level revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37

思路:
依次比较即可。

题解:

class Solution {public:    int compareVersion(string version1, string version2) {        for(auto& ch: version1) { if (ch == '.') ch = ' '; }        for(auto& ch: version2) { if (ch == '.') ch = ' '; }        stringstream ss1(version1), ss2(version2);        int not_consumed[2] = {1, 1};        int v1;        int v2;        while(not_consumed[0] || not_consumed[1]) {            if (!(ss1 >> v1)) {                not_consumed[0] = 0;                v1 = 0;            }            if (!(ss2 >> v2)) {                not_consumed[1] = 0;                v2 = 0;            }            if (v1 > v2) {                return 1;            } else if (v1 < v2) {                return -1;            }        }        return 0;    }};
0 0
原创粉丝点击