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

Posted yunxintryyoubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于1192. 最长非公共子序列之1的主要内容,如果未能解决你的问题,请参考以下文章

算法图解:动态规划之最长公共子串,最长公共子序列

动态规划之----最长公共子序列

最长公共子序列

最长公共子序列

自然语言处理之LCS最长公共子子序列

算法设计之最长公共子序列