From faf2975ea7a8e7692db6c88da97fb4a9c58f3a88 Mon Sep 17 00:00:00 2001 From: Jibesh Roy Date: Sun, 8 Oct 2023 09:29:12 +0530 Subject: [PATCH 1/3] Added new file Generate Parenthesis --- backtracking/generate_parenthesis.py | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 backtracking/generate_parenthesis.py diff --git a/backtracking/generate_parenthesis.py b/backtracking/generate_parenthesis.py new file mode 100644 index 000000000000..f321e17e20c5 --- /dev/null +++ b/backtracking/generate_parenthesis.py @@ -0,0 +1,48 @@ +""" + Given 'n' Pairs of parenthesis, + this program generates all combinations of parenthesis + Example, n=3 : + [ + "((()))", + "(()())", + "(())()", + "()(())", + "()()()" + ] + This problem is solved using Backtracking +""" +def solve(op,open,close, ans): + if(open == 0 and close == 0): + ans.append(op) + return + if(open == close): + op1 = op + op1+=('(') + solve(op1, open-1, close, ans) + elif(open == 0): + op1 = op + op1+=(')') + solve(op1, open, close-1, ans) + elif(close == 0): + op1 = op + op1+=('(') + solve(op1, open-1, close, ans) + else: + op1 = op + op2 = op + op1+=('(') + op2+=(')') + solve(op1, open-1, close, ans) + solve(op2, open, close-1, ans) + + +def generateParenthesis(n): + open = n + close = n + ans=[] + op = "" + solve(op, open, close, ans) + return ans + + +print(generateParenthesis(3)) \ No newline at end of file From 60fc3942b87b13ae67116eabb7ae1b9c6e91c15c Mon Sep 17 00:00:00 2001 From: Jibesh10101011 <114723590+Jibesh10101011@users.noreply.github.com> Date: Sun, 8 Oct 2023 09:40:38 +0530 Subject: [PATCH 2/3] Update generate_parenthesis.py --- backtracking/generate_parenthesis.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backtracking/generate_parenthesis.py b/backtracking/generate_parenthesis.py index f321e17e20c5..64df529add63 100644 --- a/backtracking/generate_parenthesis.py +++ b/backtracking/generate_parenthesis.py @@ -36,7 +36,7 @@ def solve(op,open,close, ans): solve(op2, open, close-1, ans) -def generateParenthesis(n): +def generate_parenthesis(n): open = n close = n ans=[] @@ -45,4 +45,4 @@ def generateParenthesis(n): return ans -print(generateParenthesis(3)) \ No newline at end of file +print(generateParenthesis(3)) From 98d7c272bec658859251b894981deb4a9b0e074e Mon Sep 17 00:00:00 2001 From: Jibesh10101011 <114723590+Jibesh10101011@users.noreply.github.com> Date: Sun, 8 Oct 2023 09:41:12 +0530 Subject: [PATCH 3/3] Update generate_parenthesis.py --- backtracking/generate_parenthesis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backtracking/generate_parenthesis.py b/backtracking/generate_parenthesis.py index 64df529add63..1a106c255549 100644 --- a/backtracking/generate_parenthesis.py +++ b/backtracking/generate_parenthesis.py @@ -45,4 +45,4 @@ def generate_parenthesis(n): return ans -print(generateParenthesis(3)) +print(generate_parenthesis(3))