纯属吐槽。。那坑爹的题目,不过也有多是我e文没看太仔细吧 python
原题目 git
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 Credits: Special thanks to @ts for adding this problem and creating all test cases.
而后就掉坑里了。。 shell
看测试用例,尼玛。。 拿'0' 跟'1'比较。。。 你赢了。。 app
继续。。 尼玛 testcase 里面有'0.0.1' 测试
算你狠。。。 接着改 this
最后一个是'0.1'跟'0.0.1' 比较版本... code
你大爷。。。 three
最终版本。。虽然确实丑了点 ci
最终版本 pycharm
# coding = utf8 class Solution: # @param {string} version1 # @param {string} version2 # @return {integer} def compareVersion(self, version1, version2): v1 = self.compareVersionToTuple(version1) v2 = self.compareVersionToTuple(version2) deep = max(len(v1), len(v2), 2) while len(v1) < deep: v1.append(0) while len(v2) < deep: v2.append(0) for n in range(deep): sv_1 = v1[n] sv_2 = v2[n] if sv_1 > sv_2: return 1 elif sv_1 < sv_2: return -1 return 0 def compareVersionToTuple(self, version): v = [] substrings = version.split('.') for str in substrings: v.append(int(str)) return v def __init__(self): ans = self.compareVersion('0.1', '0.0.1') print(ans) solution = Solution()
最后pycharm大法好。。。