- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Check for Palindrome after every character replacement Query in C++
Consider we have a string and some queries in set Q. Each query contains a pair of integers i and j. and another character c. We have to replace characters at index i and j with the new character c. And tell if the string is palindrome or not. Suppose a string is like “AXCDCMP”, if we use one query like (1, 5, B), then the string will be “ABCDCBP”, then another query like (0, 6, A), then it will be “ABCDCBA”, this is palindrome.
We have to create one query using indices i, j, then replace the characters present at indices i, j in the string, with c.
Example
#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); }
Output
ABCDCBP is not Palindrome ABCDCBA is Palindrome
Advertisements