1192. 最长非公共子序列之1

1192. 最长非公共子序列之1

中文English

给定一组两个字符串,你需要找到这组两个字符串中最长的非公共子序列。 最长的非公共子序列被定义为这两个字符串之一的最长子序列,此子序列满足:它不是其他字符串的子序列。

子序列是可以通过删除一些字符而不改变其余元素的顺序从一个序列导出的序列。可以说,任何字符串都是自身的子序列,空字符串是任何字符串的子序列。

输入两个字符串,输出最长的非公共子序列的长度。 如果最长的非公共子序列不存在,则返回-1。

样例

输入: "aba", "cdc"
输出: 3
解释:最长的非公共子序列是“aba”(或“cdc”),
因为“aba”是“aba”的子序列,但它不是"cdc"的子序列。

注意事项

两个字符串的长度都不会超过100。
只有来自a~z的字母才会出现在输入字符串中。

输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param a: a string
    @param b: a string
    @return: return a integer
    """
    '''
    大致思路:
    1.替换在a字符串里面的b字符串,replace(b,''),或者是替换在b字符串里面的a,最终返回剩下来的最大值。
    2.如果max为0,即都不存在的话,则直接返回-1.
    '''
    def findLUSlength(self,a,b):
        l1= a.replace(b,'')
        l2 = b.replace(a,'')
        return max(len(l1),len(l2)) if max(len(l1),len(l2)) != 0 else -1

 

posted @ 2020-04-18 15:15  风不再来  阅读(284)  评论(0编辑  收藏  举报