a229. 括號匹配問題
標籤 : 窮舉
通過比率 : 2654人/3306人 ( 80% ) [非即時]
評分方式:
Tolerant

最近更新 : 2011-08-27 11:50

內容

最近要開學了!  ( ~~~ 跟題目沒有什麼關係 ) ><

 

請寫一個程式把所有合法括號匹配方式列出來!   

 

Ex. (())  ,  ((()())) , ()((()))  是合法的匹配方式 

 

      )( , (()))(  , ()(()(  是不合法的匹配方式

 

     合法匹配的括號 , 從答案列的開頭到答案列某一點,左括弧次數永遠大於等於右括弧!  

 

    Ex. 合法匹配   ((()()))     

    字串 (        左括弧 : 1  >=   右括弧 : 0     

    字串 ((        左括弧 : 2  >=   右括弧 : 0   

    字串 (((        左括弧 : 3  >=   右括弧 : 0    

    字串 ((()        左括弧 : 3  >=   右括弧 : 1

    字串 ((()(        左括弧 : 4  >=   右括弧 : 1

    字串 ((()()        左括弧 : 4  >=   右括弧 : 2

    字串 ((()())        左括弧 : 4  >=   右括弧 : 3

    字串 ((()()))        左括弧 : 4  >=   右括弧 : 4        

 

    Ex. 不合法匹配    (()))(

   字串 (        左括弧 : 1  >=   右括弧 : 0 

   字串 ((        左括弧 : 2  >=   右括弧 : 0   

   字串 (()        左括弧 : 2  >=   右括弧 : 1

   字串 (())        左括弧 : 2  >=   右括弧 : 2

   字串 (()))        左括弧 : 2  <=   右括弧 : 3    

!!! 右括弧次數大於左括弧了!  (()))( 為不合法匹配  

 

輸入說明

 

輸入一個正整數 N , 1 =< N <= 13 。

N 代表有幾組括號要匹配

Ex.

      N = 1 代表 一組括號 ()

      N = 2 代表有兩組括號  ()() 

 

輸出說明

 

輸出 N 組括號的所有合法匹配組合   

輸出方式請見範例

 

範例輸入 #1
1
2
3
4
範例輸出 #1
()
 
(())
()()
 
((()))
(()())
(())()
()(())
()()()

(((())))
((()()))
((())())
((()))()
(()(()))
(()()())
(()())()
(())(())
(())()()
()((()))
()(()())
()(())()
()()(())
()()()()
測資資訊:
記憶體限制: 512 MB
提示 :

2011 / 8 / 27   11 : 50 測資修正
通過時間改為 1s  
標籤:
窮舉
出處:
名題精選百則 [管理者: stanley17112 ... (Stanley) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
36638 fire5386 (becaidorz) a229
簡易題解
1374 2023-07-30 22:37
24996 dennis753951 ... (劉東) a229
1450 2021-04-11 03:37
40842 hs210023@stu ... (天底下最帥的那個男人) a229
解答 c++
329 2024-06-14 21:45
40190 dreamer.aeu6 ... (Noah) a229
321 2024-04-28 23:54
36293 wayne800800@ ... (hokak) a229
TLE可能原因(C++)
728 2023-07-13 16:34