recursion
recursion
res = []
digitToChar = {
"2": "abc",
"3": "def",
"4": "ghi",
"5": "jkl",
"6": "mno",
"7": "qprs",
"8": "tuv",
"9": "wxyz",
if len(curStr) == len(digits):
res.append(curStr)
return
for c in digitToChar[digits[i]]:
backtrack(i + 1, curStr + c)
if digits:
backtrack(0, "")
return res
class Solution:
res = []
nums.sort()
if total == target:
res.append(cur.copy())
return
return
cur.append(nums[j])
cur.pop()
dfs(0, [], 0)
return res
class Solution:
def dfs(i):
if i >= len(s):
res.append(part.copy())
return
if self.isPali(s, i, j):
part.append(s[i : j + 1])
dfs(j + 1)
part.pop()
dfs(0)
return res
while l < r:
if s[l] != s[r]:
return False
l, r = l + 1, r - 1
return True
class Solution:
if len(nums) == 0:
return [[]]
perms = self.permute(nums[1:])
res = []
for p in perms:
p_copy = p.copy()
p_copy.insert(i, nums[0])
res.append(p_copy)
return res
class Solution:
def subsets(self, nums: list[int]) -> list[list[int]]:
res = []
subset = []
def create_subset(i):
if i == len(nums):
print(subset)
res.append(subset[:])
return
subset.append(nums[i])
create_subset(i+1)
subset.pop()
create_subset(i+1)
create_subset(0)
return res
nums = [1,2,3]
s=Solution()
res=s.subsets(nums)
print(nums)