`
standalone
  • 浏览: 622726 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Find all valid parentheses

阅读更多
Problem:

Implement an algorithm to print all valid (e.g., properly opened and closed) combinations of n-pairs of parentheses.

给定一个正整数N,打印所有可能的N对括号序列,例子如下。

EXAMPLE:
input: 3 (e.g., 3 pairs of parentheses)
output: ()()(), ()(()), (())(), ((()))

My Code:

public class Parenthese {
	public static void printParentheses(int n){
		printSub(n, 0, 0, "");
	}
	
	public  static void printSub(int n, int l, int r, String s){
		if(l == n && r == n){
			System.out.println("One result:" + s);
			return;
		}else {
			if(l > r){
				if(l < n) {
					String s1 = s + '(';
					printSub(n, l+1, r, s1);
				}
				String s2 = s+ ')';
				printSub(n, l, r+1, s2);
			}
			if(l == r){
				if(l<n){
					String s1 = s + '(';
					printSub(n, l+1, r, s1);
				}
			}
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		printParentheses(4);
	}

}


One result:(((())))
One result:((()()))
One result:((())())
One result:((()))()
One result:(()(()))
One result:(()()())
One result:(()())()
One result:(())(())
One result:(())()()
One result:()((()))
One result:()(()())
One result:()(())()
One result:()()(())

One result:()()()()
分享到:
评论

相关推荐

    java-leetcode题解之Longest Valid Parentheses.java

    其中,“Longest Valid Parentheses”是一道在LeetCode上常见的算法题目,要求编写一个函数来找出输入字符串中有效的括号配对的最大长度。 在Java中,解决这类问题通常需要对字符串进行遍历,并且利用栈、动态规划...

    java-leetcode题解之Maximum Nesting Depth of Two Valid Parentheses

    对于题目“Maximum Nesting Depth of Two Valid Parentheses”,我们可以将其理解为计算两个有效括号字符串中最深的嵌套深度。有效括号字符串通常指字符串仅由'('和')'构成,并且对于每个'(',都有一个相匹配的')'。...

    c语言-leetcode 0020-valid-parentheses.zip

    c c语言_leetcode 0020_valid_parentheses.zip

    C语言-leetcode题解之32-longest-valid-parentheses.c

    今天,我们专注于题号为32的LeetCode题目“Longest Valid Parentheses”,即找出最长的有效括号匹配子串长度。 有效括号匹配是计算机科学中的经典问题,它要求识别并计算给定字符串中正确配对的括号数量。在编程...

    leetcode2-valid_parentheses:代码挑战:有效括号

    leetcode 2 有效括号 给定一个只包含字符'(' , ')' , '{' , '}' , '['和']'的字符串,确定输入字符串是否有效。 输入字符串在以下情况下有效: * 左括号必须由相同类型的括号封闭。...类别:堆栈、序列处理

    C语言-leetcode题解之20-valid-parentheses.c

    具体到文件标题中提到的“20-valid-parentheses.c”,这个文件应该是针对leetCode中第20号题目“有效的括号”的C语言实现。这道题目的核心要求是判断给定的字符串是否为有效的括号组合。有效的括号组合是指,对于每...

    js-leetcode题解之20-valid-parentheses.js

    在LeetCode算法题目中,“20.有效的括号”是一道广泛讨论的问题,它要求编写一个函数来判断输入字符串...function isValid(s) { let stack = []; for (let i = 0; i ; i++) { // 检查当前字符是否为左括号 if (s[i]

    js-leetcode题解之32-longest-valid-parentheses.js

    本文是一篇专注于解决LeetCode平台中JavaScript语言编写的“32-最长有效括号”问题的题解文章。在介绍解题思路和实现方法之前,先对这个问题进行详细阐述。问题要求编写一个函数,该函数能够找到给定字符串中合法的...

    程序员面试宝典LeetCode刷题手册

    第四章 Leetcode 题解 ...20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 23. Merge k Sorted Lists 24. Swap Nodes in Pairs 25. Reverse Nodes in k-Group 26. Remove Dupli

    颜色分类leetcode-leetcode-[removed]我对Leetcode问题的解决方案

    颜色分类leetcode My Leetcode Problems Solutions Using javascript(ES6) 1 Two Sum ...Valid ...Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位

    LeetCode Valid Parenthese解决方案

    其中,“Valid Parentheses”是一道经典的字符串处理问题。这个题目要求我们编写一个函数,检查给定的字符串中括号的使用是否合法。具体来说,我们需要确保所有打开的括号都有对应的闭合括号,并且它们的顺序是正确...

    The-parentheses-matching-the-test.rar_Parentheses Matching_The T

    本资源“The-parentheses-matching-the-test.rar”提供了一个C语言实现的括号匹配检验,旨在帮助学习者深入理解和应用C语言以及相关的数据结构。 括号匹配的核心在于检查一个字符串中的开括号(如"(", "[", "{")...

    javalruleetcode-learn-algorithms::laptop:Java实现的各种算法题解

    java lru leetcode ...Parentheses](./leetcode/动态规划-Longest Valid Parentheses.java) [动态规划-Maximum Length of Repeated Subarray](./leetcode/动态规划-Maximum Length of Repeated Subar

    前端大厂最新面试题-stack.docx

    1. 有效的括号(Valid Parentheses):给定一个字符串,判断括号是否匹配,使用栈来解决。难度:简单 2. 删除最外层的括号(Remove Outermost Parentheses):给定一个字符串,删除最外层的括号,使用栈来解决。难度...

    java-leetcode题解之22-Generate-Parentheses

    java入门 java_leetcode题解之22_Generate_Parentheses

    leetcode530-algorithm:算法

    leetcode 530 ** LeetCode 题目更新 ** 用来记录业余时间所做的算法题目,保持对于数据结构的熟悉。 ** ...Valid Parentheses 022 Generate Parentheses 028 Implement strStr() 031 Next Permutat

    gasstationleetcode-leetcode_java:为求职做准备。Leetcode的java版本

    all sort algorithms Tree/Graph traverse: DFS,BFS,LFS 07/01/2015 Set up IntelliJ for Github Finish easy problems in Leetcode using java. 1.Roman to Integer 2.Binary Tree Level Order Travasal II 3....

    lrucacheleetcode-leetcode:leetcode

    Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 25. Reverse Nodes in k-Group 26. Remove Duplicates from Sorted Array 27. Remove Element 28. Implement strStr() 3

    leetcode中国-leetcode:leetcode刷题

    Parentheses 用栈判断括号匹配 Regular Expression Matching 递归匹配 wildcard matching 动态规划 longest common prefix , 简单 valid number, hard, 用有限自动机 integer to roman ,easy , 模拟 roman to ...

Global site tag (gtag.js) - Google Analytics