Advertisement
Find all possible palindromic partitions of a String
JavaView on GFG
Find all possible palindromic partitions of a String.java
Java
import java.util.*;
class Solution {
public ArrayList<ArrayList<String>> palinParts(String s) {
ArrayList<ArrayList<String>> result = new ArrayList<>();
backtrack(0, s, new ArrayList<>(), result);
return result;
}
private void backtrack(int start, String s, ArrayList<String> current, ArrayList<ArrayList<String>> result) {
if (start == s.length()) {
result.add(new ArrayList<>(current));
return;
}
for (int end = start; end < s.length(); end++) {
if (isPalindrome(s, start, end)) {
current.add(s.substring(start, end + 1));
backtrack(end + 1, s, current, result);
current.remove(current.size() - 1);
}
}
}
private boolean isPalindrome(String s, int left, int right) {
while (left < right) {
if (s.charAt(left++) != s.charAt(right--))
return false;
}
return true;
}
}
Advertisement
Was this solution helpful?