











Find all possible Palindromic Partitions of the given String in C++
All Possible Palindromic Partitions of the given String in C++
Today in this article we will discuss the program to Find all possible Palindromic partitions of the given String in C++ Programming Language. We will discuss both approach and code in this page.


Algorithm:
- We go through every substring starting from first character,
- Check if it is palindrome.
- If yes, then add the substring to solution.
- And recur for remaining part.


Code in C++
Run
#include<bits/stdc++.h> using namespace std; bool isPalindrome(string str, int low, int high) { while (low < high) { if (str[low] != str[high]) return false; low++; high--; } return true; } void allPalPartUtil(vector<vector<string>>&allPart, vector<string> &currPart, int start, int n, string str) { if (start >= n) { allPart.push_back(currPart); return; } for (int i=start; i<n; i++) { if (isPalindrome(str, start, i)) { currPart.push_back(str.substr(start, i-start+1)); allPalPartUtil(allPart, currPart, i+1, n, str); currPart.pop_back(); } } } void allPalPartitions(string str) { int n = str.length(); vector<vector<string> > allPart; vector<string> currPart; allPalPartUtil(allPart, currPart, 0, n, str); for (int i=0; i<allPart.size(); i++ ) { for (int j=0; j<allPart[i].size(); j++) cout << allPart[i][j] << " "; cout << "\n"; } } int main() { string str = "nitin"; allPalPartitions(str); return 0; }
Output :
n i t i n n iti n nitin
Login/Signup to comment