Skip to main content
  1. Posts/

LeetCode-522 最长特殊序列 II

·1 min·

LeetCode-522 最长特殊序列 II #

Solution 1 #

如果有一个特殊序列, 那么它所属的序列必然是一个长度不小于它的特殊序列, 因此判断初始序列的是否是其它序列的子序列即可.

代码如下:

class Solution:
    def findLUSlength(self, strs: List[str]) -> int:
        def is_subseq(s, t):
            i = 0
            for ch in t:
                if s[i] == ch:
                    i += 1
                    if i == len(s):
                        return True
            return False

        strs.sort(key=lambda x: -len(x))
        for i, s in enumerate(strs):
            is_valid = True
            for j, t in enumerate(strs):
                if i != j and is_subseq(s, t):
                    is_valid = False
                    break
            if is_valid:
                return len(s)
        return -1