leetcode python2的函数调用一定所有函数都要前面加self.f

class Solution(object):
def back(self,left_trees, right_trees): # 建完树后向上搜索 # 并列的min 不影响时间复杂度的优化
# 先准备数据 min
minL = min(len(left_trees), len(right_trees)) # 并列不影响时间复杂度?【先不考虑时间复杂度】
for i in range(minL):
if left_trees[i] != right_trees[i]:
return left_trees[0: i]
return left_trees[0: minL] # 这句[0: minL]不用if哪个最小了 太方便了!

def create(self,strs,l,r):
    if strs == [] or strs[0]=="":
        return ""
    if l == r:
        return strs[l] # 这是单个节点回退
    mid = (1+r) // 2
    left_trees = self.create(strs, 1, mid)
    right_trees = self.create(strs, mid+1, r)
    # 这里全执行完才能最后执行一次!
    return self.back(left_trees, right_trees) # 这是开始2个节点一对的回退

def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    return self.create(strs, 0, len(strs)-1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值