मान लीजिए हमारे पास लोअरकेस अंग्रेजी अक्षरों वाली एक स्ट्रिंग S है। हमें S में ठीक एक वर्ण 'a' डालना है। डालने के बाद यदि हम S को पैलिंड्रोम नहीं बना सकते तो वह स्ट्रिंग वापस करें, अन्यथा "impossible" वापस करें।
उदाहरण के लिए, यदि इनपुट S = "bpapb" है, तो आउटपुट "bpaapb" होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
यदि S और "a" का संयोजन पैलिंड्रोम नहीं है, तो: S संयोजन 'a' वापस करें अन्यथा जब "a" + S का संयोजन पैलिंड्रोम नहीं है, तो: 'a' संयोजन S वापस करें अन्यथा "Impossible" वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; bool p(const string& s) { for (int i = 0; i < s.size() / 2; i++) if (s[i] != s[s.size() - 1 - i]) return false; return true; } string solve(string S) { if (!p(S + 'a')) return S + 'a'; else if (!p('a' + S)) return 'a' + S; else return "Impossible"; } int main() { string S = "bpapb"; cout << solve(S) << endl; } इनपुट
"bpapb"
आउटपुट
bpapba