521. 最长特殊序列 Ⅰ

48 阅读1分钟

题目

给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列  的长度。如果不存在,则返回 -1 。

「最长特殊序列」 定义如下:该序列为 某字符串独有的最长

子序列

(即不能是其他字符串的子序列) 。

字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。

  • 例如,"abc" 是 "aebdc" 的子序列,因为删除 "aebdc" 中斜体加粗的字符可以得到 "abc" 。 "aebdc" 的子序列还包括 "aebdc" 、 "aeb" 和 "" (空字符串)。

思路

需要返回最长子序列, 其中关键信息为子序列的定义: 可以删除任意数量的字符后可以获得的字符串

因此最长即为不删除任意字符的情况,返回这两个字符串的最大长度. 如果这两个字符串相同的话则返回-1

代码

class Solution {
    public int findLUSlength(String a, String b) {
        if (!a.equals(b)) {
            return Math.max(a.length(), b.length());
        }
        return -1;
    }
}

题解

三叶姐题解: leetcode.cn/problems/lo…