LeetCode: Compare Version Numbers
来源:互联网 发布:淘宝美工常用ps字体 编辑:程序博客网 时间:2024/05/29 03:45
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) { int pos1 = 0, pos2 = 0, pre1 = 0, pre2 = 0; while(pos1 < version1.size() && pos2 < version2.size()) { pos1 = version1.find('.', pos1) == std::string::npos ? version1.size() : version1.find('.', pos1); pos2 = version2.find('.', pos2) == std::string::npos ? version2.size() : version2.find('.', pos2); int cur = compare(version1.substr(pre1, pos1-pre1), version2.substr(pre2, pos2-pre2)); pos1++; pos2++; if(cur == 0) { pre1 = pos1; pre2 = pos2; } else return cur; } while(pos1 < version1.size() && (version1[pos1] == '0' || version1[pos1] == '.')) { pos1++; } while(pos2 < version2.size() && (version2[pos2] == '0' || version2[pos2] == '.' )) { pos2++; } if(pos1 < version1.size()) return 1; else if(pos2 < version2.size()) return -1; else return 0; }private: int compare( string v1, string v2) {while(!v1.empty() && v1[0] == '0') { v1 = v1.size() > 1 ? v1.substr(1) : ""; }while(!v2.empty() && v2[0] == '0') {v2 = v2.size() > 1 ? v2.substr(1) : ""; } int l1 = v1.size(); int l2 = v2.size(); if(l1 == l2) { for(int i = 0; i < l1; i++) { if(v1[i] == v2[i]) continue; else { return v1[i] - v2[i] > 0 ? 1 : -1; } } return 0; } else return l1 > l2 ? 1 : -1; }};
0 0
- Leetcode 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
- [leetCode] 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
- LeetCode--Compare Version Numbers
- Compare Version Numbers Leetcode
- Compare Version Numbers --- LeetCode
- [LeetCode] Compare Version Numbers
- MediaPlayer类播放音频或者视频
- shell脚本学习网站
- Android SlidingPaneLayout的使用
- javascript中关于map foreach 和reduce的用法简单叙述
- c语言中的一道算法题(小明结识帅哥还是美女的问题)
- LeetCode: Compare Version Numbers
- linux下 nginx + tomcat 服务器集群 (4)
- 读.爱加密分享:APK高级保护方法解析(二)
- ArrayList的toArray
- JPA 2.0 Vs Hibernate:缓存方法的差异(一)
- 所有旧版本JDK在官网中的下载地址
- 大型网站的灵魂——性能
- 同步 异步 并行 串行
- UISearchBar和UISearchDisplayController