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