文档章节

leetcode 165 Compare Version Numbers python

卜霞森
 卜霞森
发布于 2015/07/19 20:47
字数 331
阅读 247
收藏 0

纯属吐槽。。那坑爹的题目,不过也有可能是我e文没看太仔细吧

原题目

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.



目测就是一个版本号比较,搞起。。。

然后就掉坑里了。。

看测试用例,尼玛。。 拿'0' 跟'1'比较。。。 你赢了。。

继续。。 尼玛 testcase 里面有'0.0.1'

算你狠。。。 接着改

最后一个是'0.1'跟'0.0.1' 比较版本...

你大爷。。。 

最终版本。。虽然确实丑了点


最终版本

# 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大法好。。。


© 著作权归作者所有

共有 人打赏支持
卜霞森
粉丝 1
博文 50
码字总数 32877
作品 0
深圳
程序员
私信 提问
165. Compare Version Numbers - LeetCode

Question 165. Compare Version Numbers Solution 题目大意: 比较版本号大小 思路: 根据逗号将版本号字符串转成数组,再比较每个数的大小 Java实现:...

yysue
2018/08/27
0
0
LeetCode:Compare Version Numbers - 比较版本号

1、题目名称 Compare Version Numbers(比较版本号) 2、题目地址 https://leetcode.com/problems/compare-version-numbers/ 3、题目内容 英文:Compare two version numbers version1 and ......

北风其凉
2015/09/18
376
0
Leetcode日记6

(2015/11/28) LeetCode 303 Range Sum Query - Immutable:(Easy) 1)超时的算法:每次调用sumRange函数进行一次累加运算。 2)不超时的算法:改变数组的内容,存储从0下标到当前下标所有...

fxdhdu
2015/11/28
73
0
android程序员python学习之路

1年半android经验,初次接触python,学了几天,相见恨晚,迫不及待的写了这篇记录下。python新手,请多见谅。 其实也不是最近才接触Python,大四上有一门计算机性能相关的课各种算法、工具要求...

Dynamic_2018
2018/07/08
0
0
LeetCode 279. Perfect Squares (完美平方数)

原题 Given a positive integer n, find the least number of perfect square numbers (for example, ) which sum to n. Example 1: Example 2: Reference Answer 思路分析 这道题是考察四平......

dby_freedom
2018/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Httpd 整合 Tomcat 步骤

环境:Tomcat8 + Httpd2.4 工作原理:借助于Tomcat的AJP连接器实现Apache与Tomcat的通信 配置步骤: 1. 配置httpd.conf 新增: Include conf/extra/mod_jk.conf 修改:添加 index.jsp <IfM...

ZeroneLove
昨天
1
0
Docker笔记3——容器命令(未写完,明天整理接着写)

未写完,明天整理接着写 新建并启动容器 docker run docker run [OPTIONS] IMAGE [COMMEND] [ARG...] OPTIONS: --name=[容器新名字] :为容器指定一个名称 -d:后台运行容器,并返回容器ID,...

HappyBKs
昨天
1
0
2018个人年终总结

感谢领导的信任和指导,新的一年获得了很多成长和提高,改掉了很多不好的习惯。 在这一年里,我在领导的帮助下,主要完成了以下功能: 1、完成上海银行版本投资营销相关功能的开发。 2、完成车...

万山红遍
昨天
9
0
保密工作与linux系统的发展

保密工作从性质上可以分成商业方面的保密和国家安全方面的保密。由于自己从事的是IT方面的工作,工作中必然会接触涉及到计算机信息方面的相关文件。加上单位已近通过武器装备科研生产单位二级...

linux-tao
昨天
2
0
Spark共享变量

概述 Spark程序的大部分操作都是RDD操作,通过传入函数给RDD操作函数来计算。这些函数在不同的节点上并发执行,但每个内部的变量有不同的作用域,不能相互访问,所以有时会不太方便,Spark提...

仟昭
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部