zoukankan      html  css  js  c++  java
  • 生成n对括号的合法全排列

    生成n对括号的合法全排列:

      给定一整数N,输出N对括号的合法全排列

    例:

      2

      3

      ()()

      (())

      

      ()()()

      (())()

      ()(())

      ((()))

    分析:

      很经典的需要迭代来进行实现。

      迭代的关键在于找到跳出迭代的条件,以及每次迭代的策略。

      出口:

        此题,迭代,每次只能画括号的一半,故而出口为,左边括号剩余和右边括号剩余均为0;

      每次迭代策略:

        如代码所示。

    代码实现:

     1 import java.util.Scanner;
     2 import java.util.Stack
     3 public class Main {
     4     public static void main(String []args){
     5         Scanner sc =new Scanner(System.in);
     6         while(sc.hasNext()){
     7             int m =sc.nextInt();
     8             Stack<String> s  =new Stack<String>();
     9             String n ="";
    10             generate(m , m, n);
    11         }
    12     }          
    13     public static void generate(int leftNum,int rightNum,String s)  
    14     {  
    15         if(leftNum==0&&rightNum==0)  
    16         {  
    17             System.out.println(s);  
    18         }  
    19         if(leftNum>0)  
    20         {  
    21             generate(leftNum-1,rightNum,s+'(');  
    22         }  
    23         if(rightNum>0&&leftNum<rightNum)  
    24         {  
    25             generate(leftNum,rightNum-1,s+')');  
    26         }  
    27     }  
    28 }
    Java Code
  • 相关阅读:
    调用百度地图API添加点聚合时,marker标注的label标签刷新丢失问题
    redis--基本命令
    centos8安装redis6.0.5
    centos8更改镜像源
    centos8重启网络服务
    搭建eureka高可用
    html5图片缩放后上传blob
    mysql主从复制
    zTree
    datetimepicker使用总结
  • 原文地址:https://www.cnblogs.com/zdtiio/p/5921576.html
Copyright © 2011-2022 走看看