当前位置: 首页 > news >正文

Leet -- 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:


"((()))", "(()())", "(())()", "()(())", "()()()"
就是说给一个数字n,n对括号,打印出所有可能的组合。


思路:
1.每次分别追加左、右括号进行递归,n-1
2.完成能否添加左、右括号的判断
3.当n=1把当前的括号字符串添加到结果集中





public class Solution {
    
private List<string> result = new List<string>();
private int total;
public IList<string> GenerateParenthesis(int n) 
{
	if (n <= 0){
		return null;
	}
	
	total = n * 2;
	Travel(total, "("); // always start with '('
	
	return result;
}


private void Travel(int n, string str){
	if(n == 1){
		result.Add(str);
		return ;
	}
	
	if(CanAppendLeft(str)){
		Travel(n-1, str+"(");
	}
	if(CanAppendRight(str)){
		Travel(n-1, str+")");
	}
}


private bool CanAppendLeft(string str){
	return str.Count(x=>x == '(') < total / 2;
}


private bool CanAppendRight(string str){
	var leftCount = str.Count(x=>x == '(');
	var rightCount = str.Count(x=>x == ')');
	return leftCount > rightCount;
}


}


相关文章:

  • LeetCode -- Distinct Subsequences
  • LeetCode -- SpiralOrder
  • Windows 2003下成功配置IIS+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin
  • LeetCode -- WordBreak II
  • Azure 证书配置错误: The service configuration file does not provide the certificate identification
  • Linux精彩一句话最新版
  • LeetCode -- Count Complete Tree Node
  • LeetCode -- Isomorphic Strings
  • LeetCode -- Balanced Binary Tree
  • Linux系统信息查看命令大全
  • LeetCode -- Merge Two sorted lists
  • 汇编语言程序设计的基本方法
  • LeetCode -- Binary Tree Zigzag Level Order Traversal
  • PostgreSQL+PostGIS的使用 1
  • LeetCode -- Compare Version Numbers
  • 【347天】每日项目总结系列085(2018.01.18)
  • 07.Android之多媒体问题
  • Babel配置的不完全指南
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript 奇技淫巧
  • JavaScript 一些 DOM 的知识点
  • JAVA并发编程--1.基础概念
  • Logstash 参考指南(目录)
  • PhantomJS 安装
  • Swift 中的尾递归和蹦床
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue学习系列(二)vue-cli
  • 分布式熔断降级平台aegis
  • 如何设计一个微型分布式架构?
  • 数据可视化之 Sankey 桑基图的实现
  • 说说动画卡顿的解决方案
  • 小试R空间处理新库sf
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2)MFC+openGL单文档框架glFrame
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (JS基础)String 类型
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Framework .NET Core与 .NET 的区别
  • .Net面试题4
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @Service注解让spring找到你的Service bean
  • [Android View] 可绘制形状 (Shape Xml)
  • [AX]AX2012 R2 出差申请和支出报告
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [codeforces] 25E Test || hash
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]