diff --git a/Problem 1.py b/Problem 1.py new file mode 100644 index 00000000..9c1a0758 --- /dev/null +++ b/Problem 1.py @@ -0,0 +1,19 @@ +class Solution: + def subsets(self, nums: List[int]) -> List[List[int]]: + res = [] + n = len(nums) + def backtrack(i, sofar): + if i>n: + return + + + #res.append(sofar.copy()) + print(sofar) + + for j in range(i, n): + sofar.append(nums[j]) + backtrack(j+1,sofar) + sofar.pop() + + backtrack(0, []) + return res diff --git a/Problem 2.py b/Problem 2.py new file mode 100644 index 00000000..398523ba --- /dev/null +++ b/Problem 2.py @@ -0,0 +1,23 @@ +class Solution: + def partition(self, s: str) -> List[List[str]]: + + def ispalin(string): #true or False + return string[::-1]==string + + n = len(s) + res = [] + def backtrack(i, sofar): + if i>=n: + res.append(sofar.copy()) + #print(sofar) + return + + for j in range(i, n): + if ispalin(s[i:j+1]): + sofar.append(s[i:j+1]) + backtrack(j+1, sofar) + sofar.pop() + backtrack(0, []) + return res + +