ধরুন আমাদের দুটি সংখ্যা n এবং k আছে। আসুন আমরা একটি স্ট্রিং S তৈরি করার চেষ্টা করছি মাত্র তিন ধরনের অক্ষর 'a', 'b' এবং 'c' দিয়ে। স্ট্রিং S এর একটি সাবস্ট্রিং এর সর্বাধিক দৈর্ঘ্য যা একটি প্যালিনড্রোম যা k এর বেশি নয়।
সুতরাং, যদি ইনপুট n =3 এর মত হয়; k =2, তাহলে আউটপুট হবে "aab", কারণ এর দৈর্ঘ্য 3 এবং প্যালিনড্রোম সাবস্ট্রিংটি "aa" যার দৈর্ঘ্য কমপক্ষে 2। (অন্যান্য উত্তরগুলিও সম্ভব)।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
S := a blank string j := 0 for initialize i := 0, when i < n, update (increase i by 1), do: S := S concatenate (j + ASCII of 'a') as character j := (j + 1) mod 3 return S
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h>
using namespace std;
string solve(int n, int k) {
string S = "";
int j = 0;
for (int i = 0; i < n; i++) {
S += j + 'a';
j = (j + 1) % 3;
}
return S;
}
int main() {
int n = 3;
int k = 2;
cout << solve(n, k) << endl;
} ইনপুট
3, 2
আউটপুট
abc