1. 程式人生 > >LeetCode-521. 最長特殊序列 Ⅰ

LeetCode-521. 最長特殊序列 Ⅰ

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

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

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

示例 :

輸入: "aba", "cdc"
輸出: 3
解析: 最長特殊序列可為 "aba" (或 "cdc")

說明:

  1. 兩個字串長度均小於100。
  2. 字串中的字元僅含有 'a'~'z'。
 分析:   1. 如果兩個字串長度相等,但內容不相同,則返回其中一個的長度;   2. 如果兩個字串長度相等且內容一樣,那麼沒有子序列;   3. 如果兩個字串長度不等,那麼返回其中較長的一個。 程式碼:
 1
class Solution { 2 public: 3 int findLUSlength(string a, string b) { 4 int s1=a.size(),s2=b.size(); 5 if(s1!=s2) 6 return max(s1,s2); 7 else 8 if(a!=b) 9 return s1; 10 else 11 return -1; 12 }
13 };