Not a member of GistPad yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- /**
- []
- / \
- "a" "aa"
- / \
- "a" "b"
- | |
- "b" END
- |
- END
- */
- List<List<String>> result = new ArrayList<>();
- List<String> current = new ArrayList<>();
- solve(s, 0, s.length(), result, current);
- return result;
- }
- {
- // base condition
- if(i == s.length()) {
- result.add(new ArrayList<>(current));
- return;
- }
- // Define k-loop scheme
- for(int k=i; k<=j-1; k++)
- {
- if(isPalindrome(s, i, k))
- {
- // choose
- current.add(s.substring(i, k+1));
- // explore
- solve(s, k+1, j, result, current);
- // un-choose (backtrack)
- current.remove(current.size() - 1);
- }
- }
- return;
- }
- {
- return s1.equals(s2);
- }
- }
RAW Paste Data
Copied
