LeetcodeLeetCode Top 100 Liked Questions

LeetCode#2 Add two numbers2

2017-10-20  本文已影响8人  夹小欣

这个思路是这位神人给的StefanPochmann,在讨论区里面

class solution:
    def addtwonumbers(self,l1,l2):
        def toint(node):
             return node.val+10*listtoint(node.next) if node else 0
        def tolist(n):
#把千百十个转化成个十百千保存
            node = ListNode(n%10)
            if n>9:
#去掉最低位
                node.next=tolist(n/10)
            return node
        return tolist(toint(l1)+toint(l2))

大神说,之所以可以这么做是因为python可以存很大的数据,我试了一下,sys.maxint=9223372036854775807,确实很大。
一个小问题还用了递归。


去搜了一下

 x if y else z

这个用法。
学名叫做三元条件判断表达式,和其他语言中的?:一样的作用,老版本是:

true_part and condition or false_part

这个版本会出现问题,因为 true_part如果为假,python就不会继续向后判断了
http://wangye.org/blog/archives/690/

上一篇 下一篇

猜你喜欢

热点阅读