Leetcode 521.最長特殊序列I
阿新 • • 發佈:2019-02-14
spa fin family 最長子序列 equal 字符長度 class 子序列 解題思路
最長特殊序列 I
給定兩個字符串,你需要從這兩個字符串中找出最長的特殊序列。最長特殊序列定義如下:該序列為某字符串獨有的最長子序列(即不能是其他字符串的子序列)。
子序列可以通過刪去字符串中的某些字符實現,但不能改變剩余字符的相對順序。空序列為所有字符串的子序列,任何字符串為其自身的子序列。
輸入為兩個字符串,輸出最長特殊序列的長度。如果不存在,則返回 -1。
示例 :
輸入: "aba", "cdc"
輸出: 3
解析: 最長特殊序列可為 "aba" (或 "cdc")
說明:
- 兩個字符串長度均小於100。
- 字符串中的字符僅含有 ‘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