0% found this document useful (0 votes)
5 views4 pages

Python Solutions for Combinatorial Problems

Uploaded by

krishkdd0
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Python Solutions for Combinatorial Problems

Uploaded by

krishkdd0
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

class Solution:

def letterCombinations(self, digits: str) -> list[str]:

res = []

digitToChar = {

"2": "abc",

"3": "def",

"4": "ghi",

"5": "jkl",

"6": "mno",

"7": "qprs",

"8": "tuv",

"9": "wxyz",

def backtrack(i, curStr):

if len(curStr) == len(digits):

[Link](curStr)

return

for c in digitToChar[digits[i]]:

backtrack(i + 1, curStr + c)

if digits:

backtrack(0, "")

return res

class Solution:

def combinationSum(self, nums: list[int], target: int) -> list[list[int]]:

res = []
[Link]()

def dfs(i, cur, total):

if total == target:

[Link]([Link]())

return

for j in range(i, len(nums)):

if total + nums[j] > target:

return

[Link](nums[j])

dfs(j, cur, total + nums[j])

[Link]()

dfs(0, [], 0)

return res

class Solution:

def partition(self, s: str) -> list[list[str]]:

res, part = [], []

def dfs(i):

if i >= len(s):

[Link]([Link]())

return

for j in range(i, len(s)):

if [Link](s, i, j):

[Link](s[i : j + 1])
dfs(j + 1)

[Link]()

dfs(0)

return res

def isPali(self, s, l, r):

while l < r:

if s[l] != s[r]:

return False

l, r = l + 1, r - 1

return True

class Solution:

def permute(self, nums: list[int]) -> list[list[int]]:

if len(nums) == 0:

return [[]]

perms = [Link](nums[1:])

res = []

for p in perms:

for i in range(len(p) + 1):

p_copy = [Link]()

p_copy.insert(i, nums[0])

[Link](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)

[Link](subset[:])

return

[Link](nums[i])

create_subset(i+1)

[Link]()

create_subset(i+1)

create_subset(0)

return res

nums = [1,2,3]

s=Solution()

res=[Link](nums)

print(nums)

You might also like