521. Longest Uncommon Subsequence I & II [Easy & Medium]

521. Longest Uncommon Subsequence I

17368230-d1868a93ef40d224.png
521. Longest Uncommon Subsequence I

这是什么题,excuse me ?

class Solution(object):
    def findLUSlength(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: int
        """
        if a == b:
            return -1
        else:
            return max(len(a),len(b))

522. Longest Uncommon Subsequence II

17368230-8352351259af2bb8.png
522. Longest Uncommon Subsequence II

刚开始没有看懂题,Subsequence是可以删掉中间的字符,所以要用两个指针,看看是不是能指向最后,优化就是把输入按照长度进行了一个排序,这样找到的第一个就是结果。

class Solution(object):
    def findLUSlength(self, strs):
        """
        :type strs: List[str]
        :rtype: int
        """
        strs.sort(key=lambda x:len(x), reverse=True)
        for i in range(len(strs)):
            count = len(strs) - 1
            for j in range(len(strs)):
                if i == j: continue
                if self.help(strs[i], strs[j])==False:
                    count -= 1
            if count == 0:
                return len(strs[I])
        return -1
    
    def help(self, s1, s2):
        if len(s1) > len(s2):
            return False
        if s1 == s2:
            return True
        i = j = 0
        while i < len(s1) and j < len(s2):
            if s1[i] == s2[j]:
                i += 1
                j += 1
            else:
                j += 1
        return i == len(s1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值