একটি লোয়ারকেস স্ট্রিং S দেওয়া আছে n ক্যারেক্টারের। দুটি নন-ইম্পটি সাবস্ট্রিং P এবং Q খুঁজে বের করতে হবে যাতে:
- P এবং Q উভয়ই S-এর সাবসিকোয়েন্স
- প্রতিটি ইনডেক্স i এর জন্য S[i] শুধু P বা Q-তে থাকবে (দুটি নয়)
- P যত সম্ভব লেক্সিকোগ্রাফিক্যালি ন্যূনতম হবে
উদাহরণ
S="thelightsaber" → আউটপুট: "a, thelightsber"
সমাধানের ধাপসমূহ
c := S sort(c) a := c[0]-র S-এ পজিশন S-র a-তে থাকা ক্যারেক্টার ডিলিট করুন print c[0] এবং 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