【LeetCode】521. 最长特殊序列 Ⅰ

145 阅读2分钟

image.png

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情

测试岗位也越来卷了,除了基本的功能测试外,还要有编程基础、脚本经验才脱颖而出。

怎么才能提高我们的编程能力呢,刷LeetCode是最佳的途径之一,话不多数,刷题走起~

“人间四月芳菲尽,山寺桃花始盛开”

今天是四月的第一天,我们继续撸起袖子,培养自己思考能力和写作能力。

一、题目描述:

  • 题目内容

    image.png

  • 题目示例

    image.png

  • 题目解析

    • 本题给到的两个字符串 a 和 b,要求求出最长的特殊序列。
    • 最长特殊序列定义是要字符串独有的最长序列

二、思路分析:

我们拿到本题,读一遍题目后,发现一脸懵,看不懂最长特殊序列定义 和举的例子。

我们仔细再读题目的最长特殊序列定义,字符串的独有最长序列。

从示列1我们来推理一下看看定义的描述:

  • a = "aba", b = "cdc"
  • 对于字符串a来说,其子序列有 “a”,"ab","aba","aa","ba","b"
  • 对于字符串b来说,其子序列有“c”,"d","cd","dc","cdc","cc"
  • 对于字符串a 和 字符串b 来说最长都是子序列都是其len(a) = len(b) = 3

因此,我们从上述示列1的判断,我们就能理清判断思路啦,脑筋急转弯,哈哈:

  • 当字符串 a 与字符串 b 相同时,则它们不满足最长特殊序列定义,则return -1
  • 当字符串 a 与字符串 b 不相同,则取字符串a和字符串b最长长度。
    class Solution(object):
        def findLUSlength(self, a, b):
            """
            :type a: str
            :type b: str
            :rtype: int
            """
            if a == b : return -1
            return max(len(a),len(b))
    

三、总结:

今天愚人节,刷到一套脑筋急转弯的题,主要把题目理解清楚非常简单。AC记录如下:

image.png

时间复杂度O(N),空间复杂度O(1).

以上是本次刷题,欢迎大佬们点赞评论,下期见~~