Compare Version Numbers
2016-06-09 16:19
323 查看
c++
class Solution { public: int compareVersion(string version1, string version2) { if (version1.empty() || version2.empty()) return 0; vector<int> v1 = splitString(version1); vector<int> v2 = splitString(version2); int minLength = min(v1.size(), v2.size()); for (int i = 0; i < minLength; ++i) { if (v1[i] < v2[i]) return -1; if (v1[i] > v2[i]) return 1; } if (v1.size() < v2.size()) { if (v2.back() > 0) return -1; else return 0; } else if (v1.size() > v2.size()) { if (v1.back() > 0) return 1; else return 0; } return 0; } private: vector<int> splitString(const string &version) { vector<int> res; int tmp = 0; for (auto v : version) { if (v == '.') { res.push_back(tmp); tmp = 0; } else { tmp *= 10; tmp += (v - '0'); } } res.push_back(tmp); return res; } };
python
class Solution(object): def compareVersion(self, version1, version2): """ :type version1: str :type version2: str :rtype: int """ if len(version1) ==0 or len(version2)==0: return 0 v1 = version1.split('.') v2 = version2.split('.') while len(v1)<len(v2): v1.append('0') while len(v2)<len(v1): v2.append('0') for i in xrange(len(v2)): if int(v1[i]) < int(v2[i]): return -1 if int(v1[i]) > int(v2[i]): return 1 return 0
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例