ধরুন আমাদের কাছে n অক্ষর সহ একটি ছোট হাতের স্ট্রিং S আছে। আমাদের দুটি নন-এম্পটিসাবস্ট্রিং P এবং Q খুঁজে বের করতে হবে, যেমন −
-
P এবং Q উভয়ই S
-এর পরবর্তী অংশ -
প্রতিটি সূচকের জন্য i, S[i] ঠিক P এবং Q-এর একটির অন্তর্ভুক্ত।
-
P হল আভিধানিকভাবে যতটা সম্ভব ন্যূনতম।
সুতরাং, যদি ইনপুটটি S ="thelightsaber" এর মত হয়, তাহলে আউটপুট হবে 10, কারণ আমাদের 2টি লাল নোটবুক, 3টি সবুজ নোটবুক এবং 5টি নীল নোটবুক প্রয়োজন৷
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
c := S sort the array c a := position of (c[0]) in S delete c from S print c[0] and S
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; void solve(string S){ string c = S; sort(c.begin(), c.end()); int a = S.find(c[0]); S.erase(S.begin() + a); cout << c[0] << ", " << S << endl; } int main(){ string S = "thelightsaber"; solve(S); }
ইনপুট
"thelightsaber"
আউটপুট
a, thelightsber