为什么我在本地,至少第一个案例正确通过了,但是提交的时候爆零了
#include <bits/stdc++.h>
using namespace std;
#define ls(i) (i << 1)
#define rs(i) (i << 1|1)
char FBI[10000];
string nums = "";
int n;
int build(int l, int r, int i) {
if (l == r) {
if (nums[l] == '0') {
FBI[i] = 'B';
return 0;
}
if (nums[l] == '1') {
FBI[i] = 'I';
return 1;
}
}
int mid = l + ((r - l) >> 1);
int l_tag = build(l,mid,ls(i));
int r_tag = build(mid+1,r,rs(i));
if (l_tag == 1 && r_tag == 1) {
FBI[i] = 'I';
return 1;
}
else if (l_tag == 0 && r_tag == 0) {
FBI[i] = 'B';
return 0;
}
else {
FBI[i] = 'F';
return -1;
}
}
void postTra(int index, int size) {
//后序遍历
if (index > size) {
return;
}
postTra(ls(index),size);
postTra(rs(index),size);
cout << FBI[index];
}
int main()
{
cin >> n >> nums;
build(0,nums.size()-1,1);
postTra(1,pow(2,n+1));
cout << endl;
//system("pause");
return 0;
}