您的位置:首页 > 其它

括号所有有效组合

2016-05-05 11:48 267 查看
实现一种算法,打印n对括号的全部有效组合(左右括号正确配对)

核心思想:

       1.左括号:只要左括号还没用完,就可以插入括号。

       2.右括号:只要不造成语法错误,就可以插入右括号。即只要右括号比左括号还多,就会出现语法错误。

以上两个是并列条件,总结的代码如下:

import java.util.ArrayList;

public class KuoHao {
public static void addParen(ArrayList<String> list,int leftRem,int rightRem,char[] str,int count){
if(leftRem<0||leftRem>rightRem)
return;
if(leftRem==0&&rightRem==0){
String s=String.valueOf(str);
list.add(s);
}else{
if(leftRem>0){
str[count]='(';
addParen(list, leftRem-1, rightRem, str, count+1);
}
if(rightRem>leftRem){
str[count]=')';
addParen(list, leftRem, rightRem-1, str, count+1);
}
}
}
public static ArrayList<String>generateParens(int count){
char[] str=new char[count*2];
ArrayList<String>list=new ArrayList<>();
addParen(list, count,count, str, 0);
return list;
}
public static void main(String[] args) {
ArrayList<String>list=generateParens(2);
for(String i:list)
System.out.println(i);
}
}

(())
()()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: