微策略视频面试算法题总结
输入一个数字,采用递归函数输出所有合法的’[‘, ‘]’序列组合
如
input Num = 4
output : ‘[][]’、 ‘[[]]’
-参考代码如下:
@Xiaoxiang Ding 2017/10/16
void recurProcess(string vProcessedStr, int vRemainingLeft, int vRemainingRight)
{
if(0 == vRemainingLeft && 0 == vRemainingRight)
{
cout << vProcessedStr << endl;
return;
}
if(vRemainingLeft < vRemainingRight)
recurProcess(vProcessedStr + ']', vRemainingLeft, vRemainingRight - 1);
if(vRemainingLeft > 0)
recurProcess(vProcessedStr + '[', vRemainingLeft - 1, vRemainingRight);
}
void printBlackets(int vNum)
{
int Left, Right;
string ProcessedStr = "";
Left = Right = vNum / 2;
recurProcess(ProcessedStr, Left, Right);
}