leetcode22: Generate Parentheses

2024-01-20 08:08

本文主要是介绍leetcode22: Generate Parentheses,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路:最终符合要求的字符串中,左括号和右括号个数都是n,而且在字符串生成过程中,左括号的剩余个数一定小于等于右括号剩余个数,如果左右括号剩余个数都为0,说明找到一个符合题意的字符串了,保存下来。所以可以采用递归,分别添加左括号和右括号,根据以上条件设置递归出口。

代码:

public class GenerateParentheses22 {public static void main(String[] args) {System.out.println(new GenerateParentheses22().generateParenthesis(3));}public List<String> generateParenthesis(int n) {List<String> list = new ArrayList<>();int left = n;int right = n;helpGenerateParenthesis(left, right, "", list);return list;}public void helpGenerateParenthesis(int left, int right, String s, List<String> list) {if (left == 0 && right == 0) {list.add(new String(s));}if (left < 0 || right < 0 || left > right)return;helpGenerateParenthesis(left - 1, right, s + "(", list);helpGenerateParenthesis(left, right - 1, s + ")", list);}
}

输出:

这篇关于leetcode22: Generate Parentheses的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625324

相关文章

856. Score of Parentheses

856. Score of Parentheses class Solution:def scoreOfParentheses(self, s: str) -> int:stack=[]i=0for c in s:if c=='(':stack.append(c)else:score=0while stack[-1]!='(':score+=stack.pop()stack.pop()score

leetcode#32. Longest Valid Parentheses

题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", wh

Leetcode22括号生成(java实现)

今天分享的题目是Leetcode22括号生成,具体的题目描述如下: 本道题我们使用的解法是回溯。 解题思路: 我们主要是对括号出现的可能性进行一个收集。 我们以n=2举例子,如下图 如果想要合法,那么一定是左括号开始,并且以左括号为开始,要对不合适的进行剔除。可以思考一下,为何最后一个不符合呢?是因为左括号个数为1,右括号个数为1,然后没有以左括号开始。 上面的两种情况合法,第一种情况,左括

LeetCode - 32. Longest Valid Parentheses

32. Longest Valid Parentheses  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个由'('和')'组成的字符串,求最长连续匹配子串长度. analyse: 定义一个stack<pair

LeetCode 22 Generate Parentheses

题意: 用n组小括号,生成所有满足括号匹配的序列。 思路: 我用了比较粗暴的方式,用set不断迭代答案,每次迭代使得括号组数+1直到n为止。 还有一种方法是dfs构造,因为长度已经确定,所以每个位置要么放(要么放),利用前缀和维护括号匹配即可。 代码: class Solution {public:vector <string> generateParenthesis

PostgreSQL 中的 `generate_series` 函数使用

1. 概述 在 PostgreSQL 中,generate_series 是一个非常实用的内置函数,它能够根据给定的起始值和结束值生成一系列连续的数字。这一功能对于需要生成大量连续数据或进行批量操作的场景非常有用。本文将详细介绍 generate_series 函数的基本用法,并通过一些简单的示例帮助你更好地理解和应用这一函数。 2. 基本用法 generate_series 函数的基本语法

在大语言模型中,生成文本的退出机制,受max_generate_tokens限制,并不是所有的问答都完整的跑完整个transformer模型

目录 在大语言模型中,生成文本的退出机制,受max_generate_tokens限制,并不是所有的问答都完整的跑完整个transformer模型  1. max_generate_tokens的作用 2. 退出机制与Transformer模型 3. 实际应用中的影响 4. 结论 在大语言模型中,生成文本的退出机制,受max_generate_tokens限制,并不是所有的

android studio 使用Generate JavaDoc生成javaDoc

通过android studio tool 下的Generate JavaDoc 生成javaDoc,可以选择整个项目,也可以选择某个moudle 或者某个路径进行生成,如果你想要生成的javaDoc 文件将依赖关系的库也生成,那么必须自定义,将需要的库也选中。 1.普通javaDoc 打开Generate javaDoc 在这之前选择你要生成javadoc 的项目或者路径,并且 Othe

HLS报错之:Export RTL报错 “ERROR: [IMPL 213-28] Failed to generate IP.“

原因:官方bug 解决办法:下载补丁(补丁适用于2014年至2021年的多个Vivado版本),并添加到对应路径下即可。 注意:windows下该方法试用。 补丁连接 我这里下载到xilinx的目录下并解压: 点进去找到该文件: 复制到scripts路径下即可 现在export RTL就正常了

Leetcode90: Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()(