1. 程式人生 > >Leetcode 521.最長特殊序列I

Leetcode 521.最長特殊序列I

spa fin family 最長子序列 equal 字符長度 class 子序列 解題思路

最長特殊序列 I

給定兩個字符串,你需要從這兩個字符串中找出最長的特殊序列。最長特殊序列定義如下:該序列為某字符串獨有的最長子序列(即不能是其他字符串的子序列)。

子序列可以通過刪去字符串中的某些字符實現,但不能改變剩余字符的相對順序。空序列為所有字符串的子序列,任何字符串為其自身的子序列。

輸入為兩個字符串,輸出最長特殊序列的長度。如果不存在,則返回 -1。

示例 :

輸入: "aba", "cdc"

輸出: 3

解析: 最長特殊序列可為 "aba" (或 "cdc")

說明:

  1. 兩個字符串長度均小於100。
  2. 字符串中的字符僅含有 ‘a‘~‘z‘。

解題思路:

每個字符串的最長子序列為他自己,最長特殊序列的長度必定為a.length() 或者b.length() 或者-1 三者中的一個。

1,兩個字符串相等,結果為-1;

2,兩個字符長度相同但不相等,結果a.length()=b.length();

3,兩個字符串長度不同,返回較長的字符串長度。

1 class Solution {
2     public int findLUSlength(String a, String b) {
3         if(a.equals(b)) return -1;
4         return a.length()>b.length()?a.length():b.length();
5     }
6 }

Leetcode 521.最長特殊序列I