"""22.
括号生成
数字
n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且
有效的
括号组合。
示例
1:
输入:n = 3
输出:["
((( )))",
(() ())
(() )()
()( ())
()( )()
"]
示例
2:
输入:n = 1
输出:["()"]
提示:
1 <= n <= 8
通过次数303, 831
提交次数393, 400
请问您在哪类招聘中遇到此题?
"""
def generateParenthesis(n):
if 0 <= n <= 8:
for i in range(1, n + 1):
str1 = i * "(" + (n - i) * ")"
j = 0
r_list1 = []
print(str1)
while j < n:
if ")" in str1:
j += 1
else:
j += 1
s1 = n * ")"
s2 = str1
s3 = s2 + s1
r_list1.append(s3)
print(r_list1)
# for i in r_list:
# # print(i)
# if i.count(")") > n//2:
# print(i)
# if ")" in i:
# str_1 = i
# str_2 = i
# for s in i:
# if s == "(":
# str_1 += ")"
# str_2 += "("
# else:
# str_1 += ")"
# str_2 += "("
# r_list1.append(str_1)
# r_list1.append(str_2)
# else:
# r_list1.append(i + n * ")")
# else:
# if ")" in i:
# str_1 = i
# str_2 = i
# for s in i:
# if s == "(":
# str_1 += ")"
# str_2 += "("
# else:
# str_1 += ")"
# str_2 += "("
# r_list1.append(str_1)
# r_list1.append(str_2)
# else:
# r_list1.append(i + n * ")")
# print(r_list)
# print(r_list1)
# for num, i in enumerate(r_list):
# print(num,i)
# while n > num:
# for num, i in enumerate(r_list):
# print(num,i)
# while n - (num + 1) > 0:
# i += len(i) * ")" * (num+1)
#
#
#
# j = 0
# # i =()
#
#
#
# i += (n * 2 - len(i)) // 2 * "()"
#
# r_list[num] = i
# print(r_list)
r_list = []
# str1 = "(" * n + ")" * n
# r_list.append(str1)
# j = 0
# str1 = ""
# for i in range(n):
# str1 += "(" *i
# for num in range(i+1):
# str1 += ")"
# r_list.append(str1)
# str1 = ""
# print(r_list)
# for i in range(len(str1)):
# print(str1)
# print(i)
# print(j)
# if str1[i] == "(":
#
# j = i
# elif str1[i] == ")":
# str1[j], str1[i] = str1[i], str1[j]
# j = i
# r_list.append(str1)
# # else:
# print(r_list)
#
# i = 0
# while i < n:
# i += 1
# print(i)
# for i in range(1, len(str1)):
# # print(i)
# if str1[i]=="(":
#
#
# print(str1[i])
# print(i)
generateParenthesis(3)
《括号生成》算法日记 2021.7.16,每天一道算法题,怒刷Leetcode,解题失败,今天工作巨忙,标记一下,有时间补上!
最新推荐文章于 2022-01-18 11:19:02 发布