মান লিখুন: আমাদের কাছে ছোট হাতের ইংরেজি অক্ষর দিয়ে তৈরি একটি স্ট্রিং S রয়েছে। আমাদের S-তে ঠিক একটি 'a' ক্যারেক্টার ইনসার্ট করতে হবে। ইনসার্ট করার পর যদি S প্যালিনড্রোম না হয়, তবে সেটি রিটার্ন করুন, অন্যথায় "impossible" রিটার্ন করুন।
উদাহরণ
যদি ইনপুট হয় S = "bpapb", তবে আউটপুট হবে "bpaapb"
সমাধানের ধাপসমূহ
যদি S + "a" প্যালিনড্রোম নয়:
S + 'a' রিটার্ন করুন
অন্যথায় যদি "a" + S প্যালিনড্রোম নয়:
'a' + S রিটার্ন করুন
অন্যথায়:
"Impossible" রিটার্ন করুন
C++ বাস্তবায়ন
#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