मान लीजिए कि हमारे पास दो संख्याएँ n और k हैं। आइए हम केवल तीन प्रकार के वर्णों 'ए', 'बी' और 'सी' के साथ एक स्ट्रिंग एस उत्पन्न करने का प्रयास कर रहे हैं। स्ट्रिंग S के सबस्ट्रिंग की अधिकतम लंबाई जो एक पैलिंड्रोम है जो k से अधिक नहीं है।
इसलिए, यदि इनपुट n =3 जैसा है; k =2, तो आउटपुट "आब" होगा, क्योंकि इसकी लंबाई 3 है और पैलिंड्रोम सबस्ट्रिंग "आ" है जिसकी लंबाई कम से कम 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