কম্পিউটার টিউটোরিয়াল

C++-এ একটি প্যালিনড্রোম স্ট্রিং B বানান যাতে দেওয়া স্ট্রিং A তার সাবসিকোয়েন্স

একটি স্ট্রিং A দেওয়া আছে। একটি প্যালিনড্রোম স্ট্রিং B বানাতে হবে যাতে A, B-এর সাবসিকোয়েন্স হয়। সাবসিকোয়েন্স মানে কিছু ক্যারেক্টর ডিলিট করে ক্রম বদলায় না তৈরি করা স্ট্রিং।

উদাহরণ: A = "ab" → B = "abba" (প্যালিনড্রোম এবং "ab" এর সাবসিকোয়েন্স)।

সরল সমাধান

A কে রিভার্স করে A-এর পেছনে অ্যাপেন্ড করুন। B = A + reverse(A)। এটি সবসময় প্যালিনড্রোম হবে এবং A এর সাবসিকোয়েন্স।

উদাহরণ কোড
#include <iostream>
#include <algorithm>
using namespace std;

bool isPalindrome(string str) {
    string temp = str;
    reverse(str.begin(), str.end());
    return str == temp;
}

string formPalindromeStr(string A) {
    string B = A;
    reverse(A.begin(), A.end());
    A = A + B;
    if (isPalindrome(B))
        return B;
    return A;
}

string reverse(string input) {
    string temp = input;
    int left = 0, right = temp.length() - 1;
    for (; left < right; left++, right--)
        swap(temp[left], temp[right]);
    return temp;
}

int main() {
    string A = "Hello";
    cout << "The B is: " << formPalindromeStr(A);
}
আউটপুট
The B is: olleHHello
  1. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ

  2. দেওয়া রেঞ্জে ভিন্ন জোড়া (x, y) খুঁজে বের করা যাতে x, y কে ভাগ করত পারে C++-এ

  3. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা

  4. C++-এ একটি শব্দকে প্যালিনড্রোম (Palindrome) পার্টিশন করার উপায় গণনা