一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情
测试岗位也越来卷了,除了基本的功能测试外,还要有编程基础、脚本经验才脱颖而出。
怎么才能提高我们的编程能力呢,刷LeetCode是最佳的途径之一,话不多数,刷题走起~
“人间四月芳菲尽,山寺桃花始盛开”
今天是四月的第一天,我们继续撸起袖子,培养自己思考能力和写作能力。
一、题目描述:
-
题目内容
-
题目示例
-
题目解析
- 本题给到的两个字符串 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记录如下:
时间复杂度O(N),空间复杂度O(1).
以上是本次刷题,欢迎大佬们点赞评论,下期见~~