Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-04-02 23:06:15
22. Generate Parentheses
有n组括号,写一个function,可以产生所有括号的组合
思路:
当你放了一个左括号才能再放一个右括号
所以设两个变量L、R : L是左括号剩下的数量、R是右括号剩下的数量
一开始L=n、R=0
每次放了一个左括号就将L-1、R+1
同理放了一个右括号就将R-1
就这样一直到L+R==0就是一组组合了
照上面的规则写一个递回函式
golang code :
func generateParenthesis(n int) []string {
if n == 1 {
return []string{"()"}
}
return backtrack("", n, 0)
}
func backtrack(rec string, l, r int) []string {
if l+r == 0 {
return []string{rec}
}
var ans []string
if l > 0 {
ans = append(ans, backtrack(rec+"(", l-1, r+1)...)
}
if r > 0 {
ans = append(ans, backtrack(rec+")", l, r-1)...)
}
return ans
}
作者: sustainer123 (caster)   2024-04-02 23:07:00
你的每日怎么跟我不一样
楼主: JIWP (JIWP)   2024-04-02 23:07:00
今天每日写过了 随便挑一题来写

Links booklink

Contact Us: admin [ a t ] ucptt.com