因为长度是偶数,所以二分很容易想到,很多树上的东西其实不需要建树的。
#include <iostream> #include <string> using namespace std; char FBI(string s) { if (s.length() > 1) { cout << FBI(s.substr(0, s.length() / 2)); cout << FBI(s.substr(s.length() / 2, s.length() / 2)); } if (s == string(s.length(), '0')) return 'B'; if (s == string(s.length(), '1')) return 'I'; return 'F'; } int main() { int n; string s; cin >> n >> s; cout << FBI(s) << endl; return 0; }