最長不公共子序列 I C++


假設我們有兩個字串;我們必須找到這兩個字串中最長的不公共子序列。最長的不公共子序列實際上是其中一個字串的最長子序列,且此子序列不應出現在另一個字串中。所以,我們必須找到最長的不公共子序列的長度。如果最長的不公共子序列不存在,則返回 -1。

所以,如果輸入像 "aabbac", "aabbcc",則輸出將為 6

要解決這個問題,我們將按照這些步驟

  • 如果 a 等於 b,則

    • 返回 -1

  • 否則

    • 返回 a 和 b 中較長的那個

示例

讓我們看看以下實現以獲得更好的理解

 即時演示

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int findLUSlength(string a, string b) {
      if (a == b)
         return -1;
      else
         return max(a.size(), b.size());
   }
};
main(){
   Solution ob;
   cout << (ob.findLUSlength("aabbac","aabbcc"));
}

輸入

"aabbac","aabbcc"

輸出

6

更新於:2020 年 6 月 10 日

153 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.