89分,仅#7 RE 求调
查看原帖
89分,仅#7 RE 求调
940854
Jianbing_Juan楼主2025/6/30 20:05

报错信息:

Runtime Error. Received signal 11: Segmentation fault with invalid memory reference.

数组开 10001000 我觉得应该已经够大了吧。

本地 WindowsWindows 测试了 #7 数据,输出是正确的。

不知道是不是因为运行环境不同导致的莫名 RE ,求大佬帮帮孩子awa

代码如下:

#include <iostream>
#include <string>
using namespace std;

char tree[1145];

void make_tree(string in_order,string pre_order,int now_node) //找根节点+左子树+右子树。 其中根节点即为now_node //now_node初始化为1. 
{
	tree[now_node]=pre_order[0];
	if(in_order.length()<=1)
	return;
	int left_length=in_order.find(pre_order[0]),right_length=in_order.length()-left_length-1;
	make_tree(in_order.substr(0,left_length),pre_order.substr(1,left_length),now_node*2);//左子树
	make_tree(in_order.substr(in_order.length()-right_length,right_length),pre_order.substr(pre_order.length()-right_length,right_length),now_node*2+1);//右子树 
	return;
}

void out_post_order(int node)
{
	if(tree[node*2])
	out_post_order(node*2);
	if(tree[node*2+1])
	out_post_order(node*2+1);
	cout<<tree[node];
}

int main()
{
	string in_order,pre_order;
	cin>>in_order>>pre_order;
	make_tree(in_order,pre_order,1);
	out_post_order(1);
}

附 #7 数据:

in:
ABDCJHKILMNPOQFEGRS
ABCDEFHJIKLMNOPQGRS

out:
DJKPQONMLIHFSRGECBA
2025/6/30 20:05
加载中...