From dcae40b6c7deff8532577971e66b4dd890ebdbd1 Mon Sep 17 00:00:00 2001 From: Sethu Manickam Date: Wed, 5 Nov 2025 07:33:43 -0800 Subject: [PATCH 1/2] Create Problem1.java --- Problem1.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Problem1.java diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 00000000..d67ade1f --- /dev/null +++ b/Problem1.java @@ -0,0 +1,23 @@ +class Solution { + List> result; + public List> subsets(int[] nums) { + result = new ArrayList<>(); + if (nums == null|| nums.length == 0) return result; + + backtrack(nums, new ArrayList<>(), 0); + + return result; + } + + public void backtrack(int[] nums, List set, int idx) { + result.add(new ArrayList<>(set)); + + for (int i=idx; i Date: Wed, 5 Nov 2025 07:33:55 -0800 Subject: [PATCH 2/2] Implement palindrome partitioning solution --- problem2.java | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 problem2.java diff --git a/problem2.java b/problem2.java new file mode 100644 index 00000000..3ca6ec91 --- /dev/null +++ b/problem2.java @@ -0,0 +1,43 @@ +class Solution { + List> result; + public List> partition(String s) { + if (s == null || s.length() == 0) return new ArrayList<>(); + + result = new ArrayList<>(); + List currList = new ArrayList<>(); + backtrack(s, 0, currList); + + return result; + } + + private void backtrack(String s, int idx, List currList) { + + if (idx == s.length()) { + result.add(new ArrayList<>(currList)); + return; + } + + for (int j = 1; j <= s.length() - idx; j++) { + + if (isPalindrome(s.substring(idx, idx+j))) { + + currList.add(s.substring(idx, idx+j)); + backtrack(s, idx+j, currList); + currList.remove(currList.size() - 1); + + } + + } + + } + + private boolean isPalindrome(String s) { + + int l = s.length(); + for (int i=0; i