void recursions(const string& strMiddle, const string& strAfter, string& result,
int leftIndexMiddle, int length, int leftIndexAfter) {
if (length > 0) {
char rootNode = strAfter[leftIndexAfter + length - 1];
result.push_back(rootNode);
// cout << "strMiddle: " << strMiddle << ", strAfter: " << strAfter << ", push: " << rootNode << endl;
int rootIndexInMiddle = strMiddle.find(rootNode, leftIndexMiddle);
recursions(strMiddle, strAfter, result, leftIndexMiddle, rootIndexInMiddle - leftIndexMiddle, leftIndexAfter);
recursions(strMiddle, strAfter, result, rootIndexInMiddle + 1, length - rootIndexInMiddle + leftIndexMiddle - 1, rootIndexInMiddle);
}
}
int main() {
string strMiddle, strAfter, result;
cin >> strMiddle >> strAfter;
recursions(strMiddle, strAfter, result, 0, strMiddle.size(), 0);
cout << result << endl;
return 0;
}
我甚至没有直接传入子树,而是在输入给定的两个字符串上直接搜索子树,传的全是引用,没引用每次递归就几个int型变量,你告诉我内存会爆??? 想不通我的问题到底在哪里。。。