두 개의 문자열이 있다고 가정합니다. 우리는 이 두 문자열의 가장 길고 드문 부분 수열을 찾아야 합니다. 가장 길고 흔하지 않은 하위 시퀀스는 실제로 한 문자열의 가장 긴 하위 시퀀스이며 이 하위 시퀀스는 다른 문자열에 오면 안 됩니다. 그래서 우리는 가장 긴 드문 부분 수열의 길이를 찾아야 합니다. 가장 긴 uncommon 하위 시퀀스가 존재하지 않으면 -1을 반환합니다.
따라서 입력이 "aabbac", "aabbcc"와 같으면 출력은 6이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
-
a가 b와 같으면 -
-
반환 -1
-
-
그렇지 않으면
-
의 크기와 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