LeetCode521.最长特殊序列 Ⅰ
2020-05-15 本文已影响0人
伍骁辛
/**
* 521、最长特殊序列 Ⅰ
* 给你两个字符串,请你从这两个字符串中找出最长的特殊序列。
* 「最长特殊序列」定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。
* 子序列 可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。
* 输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。
*
* 示例 1:
* 输入: "aba", "cdc"
* 输出: 3
* 解释: 最长特殊序列可为 "aba" (或 "cdc"),两者均为自身的子序列且不是对方的子序列。
*
*
* 提示:
* 两个字符串长度均处于区间 [1 - 100] 。
* 字符串中的字符仅含有 'a'~'z' 。
*/
/** 思路
* 通过举例分析,得出以下结论:
* 如果两个字符串长度不一样,则较长的字符串本身不可能是短字符串的子序列,直接返回其长度即可
* 如果两个字符串内容相等,那么他们独有的最长子序列不存在,返回 -1
*/
public int findLUSlength(String a, String b) {
if (a.equals(b))
return -1;
return a.length() > b.length() ? a.length() : b.length();
}