Compare Version Numbers
来源:互联网 发布:淘宝店铺怎么增加访客 编辑:程序博客网 时间:2024/05/20 06:53
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
思路:题目不难,细节需要注意。具体做法,以”.”将字符串切分为几个字符串片段(split,c++木有这个函数,自己实现了一个),然后将每一个片段转换成对应的整数,最后从左至右比较对应整数的大小从而返回不同的值。需要注意的是1.0与1与1.0.0.0是相等的,代码如下:
class Solution {public: bool isAllZero(string s){ for(int i = 0; i < s.length();++i) if(s[i] != '0') return false; return true; } vector<string> split(string str, string s) { vector<string> ret; int f = str.find(s); if (f == -1) { ret.push_back(str); return ret; } else { int a = str.length() - f - 1; string t = str.substr(f + 1, str.length() - f - 1); ret = split(t, s); ret.push_back(str.substr(0, f)); } return ret; } int compareVersion(string version1, string version2) { vector<string>v1 = split(version1, "."); vector<string>v2 = split(version2, "."); int i = v1.size() - 1; int j = v2.size() - 1; while (i >= 0 && j >= 0) { if (atoi(v1[i].c_str()) > atoi(v2[j].c_str())) return 1; else if (atoi(v1[i].c_str()) < atoi(v2[j].c_str())) return -1; else { i--; j--; } } while(i >= 0){ if(!isAllZero(v1[i--])) return 1; } while(j >= 0){ if(!isAllZero(v2[j--])) return -1; } return 0; }};
0 0
- Leetcode Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Leetcode: Compare Version Numbers
- 【Leetcode】:Compare Version Numbers
- Compare Version Numbers (Java)
- 165 Compare Version Numbers
- leetcode:Compare Version Numbers
- [LeetCode]Compare Version Numbers
- [leetCode] Compare Version Numbers
- [leetcode] Compare Version Numbers
- 【Leetcode】Compare Version Numbers
- [LeetCode] Compare Version Numbers
- Compare Version Numbers----easy
- UITableViewCell 消除右侧辅助视图区域空白
- fragment与回退栈back stack
- Unity3D第三人称无锁定视角实现
- 关于实施dba的20个常用案例及11个不要
- 揭秘阿里服务互联网金融的关系数据库——OceanBase
- Compare Version Numbers
- caffe示例实现之5用CaffeNet训练与测试自己的数据集
- Future与Promise
- Android error 之 Syntax error, insert ";" to complete Local Variable Declaration Statement
- lintcode-数组剔除元素后的乘积-50
- 创建 DB link 来导数据
- 安卓:Fragment向Fragment传值的3种方法
- 0915_MapReduce初窥——Word Count程序
- uva 10881 Piotr's Ants 规律