标签:就是 mes thml preview char 为什么 bsp namespace www.
递归枚举当前01串,返回值分三种:
于是你就问了,为什么F串要返回3而不返回-1或2呢
左子树与右子树有以下几种返回值:
左 0 1 3
右 0 1 3
你会发现以上值有一个共同特点:不等于0或2
然后就没什么了,在递归过程中按左-右-根
的顺序即可
代码如下
#include<cstring> #include<iostream> using namespace std; char s[(1<<10)+10]; int work(int l,int r) { if(l==r) { if(s[l]==‘0‘) cout<<"B"; else cout<<"I"; return s[l]==‘1‘; } int sl,sr,m=(l+r)/2; sl=work(l,m); sr=work(m+1,r); if(sl+sr==0) { cout<<"B"; return 0; } else if(sl+sr==2) { cout<<"I"; return 1; } else { cout<<"F"; return 3; } } int main() { cin>>s>>s; work(0,strlen(s)-1); return 0; }
标签:就是 mes thml preview char 为什么 bsp namespace www.
原文地址:https://www.cnblogs.com/shengzhe/p/10352452.html