Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static ArrayList<String> generate_palindromic_decompositions(String s) {
- ArrayList<String> result = new ArrayList<String>();
- helper(s, 0, new StringBuilder(), result);
- return result;
- }
- private static void helper(String s, int idx, StringBuilder slate, ArrayList<String> result) {
- if (idx == s.length()) {
- result.add(new StringBuilder(slate.substring(0, slate.length()-1)).toString());
- return;
- }
- for (int i = idx; i < s.length(); i++) {
- if (isPal(s, idx, i)) {
- StringBuilder new_slate = new StringBuilder(slate);
- new_slate.append(s.substring(idx, i + 1) + "|");
- helper(s, i + 1, new_slate, result);
- }
- }
- }
- private static boolean isPal(String s, int idx, int i) {
- boolean result = true;
- while (idx < i) {
- if (s.charAt(idx) != s.charAt(i)) {
- result =false;
- break;
- }
- idx++;
- i--;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement