কম্পিউটার

C++-এ প্রতিটি অক্ষর প্রতিস্থাপন ক্যোয়ারী পরে প্যালিনড্রোমের জন্য চেক করুন


বিবেচনা করুন আমাদের সেট Q-এ একটি স্ট্রিং এবং কিছু প্রশ্ন রয়েছে। প্রতিটি প্রশ্নে এক জোড়া পূর্ণসংখ্যা i এবং j রয়েছে। এবং আরেকটি চরিত্র গ. আমাদের সূচী i এবং j-এর অক্ষরগুলিকে নতুন অক্ষর c দিয়ে প্রতিস্থাপন করতে হবে। এবং স্ট্রিংটি প্যালিনড্রোম কিনা তা বলুন। ধরুন একটি স্ট্রিং হল "AXCDCMP" এর মত, যদি আমরা (1, 5, B) এর মত একটি ক্যোয়ারী ব্যবহার করি, তাহলে স্ট্রিংটি হবে "ABCDCBP", তারপর আরেকটি কোয়েরি যেমন (0, 6, A), তাহলে সেটি হবে "ABCDCBA" ”, এটা প্যালিনড্রোম।

সূচক i, j ব্যবহার করে আমাদের একটি কোয়েরি তৈরি করতে হবে, তারপর স্ট্রিং-এ সূচক i, j-এ উপস্থিত অক্ষরগুলিকে c দিয়ে প্রতিস্থাপন করতে হবে।

উদাহরণ

#include <iostream>
using namespace std;
class Query{
   public:
   int i, j;
   char c;
   Query(int i, int j, char c){
      this->i = i;
      this->j = j;
      this->c = c;
   }
};
bool isPalindrome(string str){
   int n = str.length();
   for (int i = 0; i < n/2 ; i++)
   if (str[i] != str[n-1-i])
      return false;
      return true;
}
bool palindromeAfterQuerying(string str, Query q[], int n){
   for(int i = 0; i<n; i++){
      str[q[i].i] = q[i].c;
      str[q[i].j] = q[i].c;
      if(isPalindrome(str)){
         cout << str << " is Palindrome"<< endl;
      }else{
         cout << str << " is not Palindrome"<< endl;
      }
   }
}
int main() {
   Query q[] = {{1, 5, 'B'}, {0, 6, 'A'}};
   int n = 2;
   string str = "AXCDCMP";
   palindromeAfterQuerying(str, q, n);
}

আউটপুট

ABCDCBP is not Palindrome
ABCDCBA is Palindrome

  1. C++ প্রোগ্রামে একটি গাছে পূর্বপুরুষ-বংশের সম্পর্কের জন্য প্রশ্ন

  2. C++ এ একটি গাছে পূর্বপুরুষ-বংশের সম্পর্কের জন্য ক্যোয়ারী

  3. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. সর্বোত্তম পৃষ্ঠা প্রতিস্থাপন অ্যালগরিদমের জন্য C++ প্রোগ্রাম