程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 輸出n對括號的所有有效(左右括號成對匹配)排列

輸出n對括號的所有有效(左右括號成對匹配)排列

編輯:C++入門知識

原題:Implement an algorithm to print all valid (e.g., properly opened and closed) combinations of n-pairs of parentheses.   EXAMPLE: input: 3 (e.g., 3 pairs of parentheses) output: ()()(), ()(()), (())(), ((())) [cpp]  void PrintBracketsPairRecs(char *pBegin, char *pCur, int nCurLeft)   {       if (nCurLeft == 1)           {           *pCur = '(';           *(pCur+1) = ')';           printf("%s\n", pBegin); // exit of recursive function           }       else           {           // 1st way: ()*********           *pCur = '(';           *(pCur+1) = ')';           PrintBracketsPairRecs(pBegin, pCur+2, nCurLeft-1);              // 2nd way: (*********)           *pCur = '(';           *(pCur + (nCurLeft)*2 - 1) = ')';           PrintBracketsPairRecs(pBegin, pCur+1, nCurLeft-1);           }   }      void PrintBracketsPair(int n)   {       char *pBuffer = new char[2 * n + 1];       memset(pBuffer, 0, sizeof(char) * 2 * n + 1);       PrintBracketsPairRecs(pBuffer, pBuffer, n);       delete [] pBuffer;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved