สมมติว่าเรามีสองสตริง เราต้องหาลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุดของสองสตริงนี้ ลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุดคือลำดับย่อยที่ยาวที่สุดของสตริงหนึ่งและลำดับย่อยนี้ไม่ควรมาในสตริงอื่น ดังนั้น เราต้องหาความยาวของลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุด หากไม่มีลำดับย่อยที่ผิดปกติที่ยาวที่สุด ให้คืนค่า -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