最长不公共子序列 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 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告