ধরুন আমাদের দুটি সংখ্যা 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