body
{
font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif;
font-size: 10.5pt;
line-height: 1.5;
}
html, body
{
}
h1 {
font-size:1.5em;
font-weight:bold;
}
h2 {
font-size:1.4em;
font-weight:bold;
}
h3 {
font-size:1.3em;
font-weight:bold;
}
h4 {
font-size:1.2em;
font-weight:bold;
}
h5 {
font-size:1.1em;
font-weight:bold;
}
h6 {
font-size:1.0em;
font-weight:bold;
}
img {
border:0;
max-width: 100%;
height: auto !important;
}
blockquote {
margin-top:0px;
margin-bottom:0px;
}
table {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
td {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
关键:从起始位置至右的任意序列,左括号的数目>=右括号的数目
void generateParenthesis(int n )
{
generate( n, n, "" );
}
void generate(int leftNum , int rightNum , string s )
{
//递归出口
if ( leftNum == 0 && rightNum == 0)
{
cout << s << endl;
}
//只要左括号还有,就可以打印
if ( leftNum > 0)
{
generate( leftNum - 1, rightNum, s + '(');
}
//当剩余的左括号的数目小于剩余的右括号的树木的时候,即字符串中左括号的数目>=右括号的数目,就可以打印右括号
if ( rightNum > 0 && leftNum < rightNum)
{
generate( leftNum, rightNum - 1, s + ')');
}
}