मान लीजिए हमारे पास एक स्ट्रिंग और क्वेरी का समुच्चय Q है। प्रत्येक क्वेरी में पूर्णांकों i और j का एक जोड़ा होता है। और एक और वर्ण c। हमें इंडेक्स 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