165. Compare Version Numbers
来源:互联网 发布:js给下拉列表赋值 编辑:程序博客网 时间:2024/06/05 06:31
class Solution {public: int compareVersion(string version1, string version2) { int v1, v2, t; string s1, s2; v1 = version1.find('.'); v2 = version2.find('.'); while(v1 != -1 && v2 != -1) { s1 = version1.substr(0, v1); s2 = version2.substr(0, v2); s1 = f(s1, '0'); s2 = f(s2, '0'); t = compare(s1, s2); if(t != 0) return t; version1 = version1.erase(0, v1+1); version2 = version2.erase(0, v2+1); v1 = version1.find('.'); v2 = version2.find('.'); } if(v1 == -1 && v2 == -1) return compare(f(version1, '0'), f(version2, '0')); else if(v1 == -1) { s2 = version2.substr(0, v2); t = compare(f(version1, '0'), f(s2, '0')); if(t != 0) return t; else { version2 = version2.erase(0, v2+1); version2 = ff(version2, '.'); version2 = ff(version2, '0'); if(version2 == "") return 0; else return -1; } } else { s1 = version1.substr(0, v1); t = compare(f(s1, '0'), f(version2, '0')); if(t != 0) return t; else { version1 = version1.erase(0, v1+1); version1 = ff(version1, '.'); version1 = ff(version1, '0'); if(version1 == "") return 0; else return 1; } } } string f(string s, char t) { int i = 0; while(s[i] == t && i < s.size()) { s.erase(i, 1); } return s; } string ff(string s, char t) { int i = 0; while(i < s.size()) { if(s[i] == t) { s.erase(i, 1); i--; } i++; } return s; } int compare(string s1, string s2) { if(s1.size() > s2.size()) return 1; else if(s1.size() < s2.size()) return -1; else { for(int i = 0; i < s1.size(); i++) { if(s1[i] > s2[i]) return 1; if(s1[i] < s2[i]) return -1; } return 0; } }};
阅读全文
0 0
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- 165. Compare Version Numbers
- JQuery中去掉字符串首尾的空白字符
- javascript基础语法
- quartz调度实例
- Git提交和推送的区别
- 【踩坑】PHP中关于运算符优先级使用中可能遇到的问题
- 165. Compare Version Numbers
- bzoj3750: [POI2015]Pieczęć
- Hive 使用RegexSerDe来处理标准格式Apache Web日志
- 字节码分析finally块对return返回值的影响
- 安卓之USB主机(Host)与配件(Accessory)模式
- android四大组件(详细总结)
- Qimonda公司简介
- Tab键控制光标在指定范围内移动
- 配置Hadoop集群