मान लें कि हमारे पास सेट 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