【树论】FBI树
2024-09-05 07:54:08
思路
讲这道题之前,先讲一个黑科技一般的函数:basic_string::substr(int x,int y)
。
这是一个string类的成员函数,它返回一个新的string对象,该对象是从调用者的第x个字符开始往后数y个字符所组成的字符串(若x+y>this->length(),则默认截取到最后一位),这个函数可以完美的解决本题中分割字符串的问题~~~
运用递归,若参数字符串长度大于一,则对其前一半和后一半进行递归,然后分析原字符串的类别,返回F/B/I,若等于一,则分析该字符串的类别,放回F/B/I。
Code
#include <iostream>
#include <string>
using namespace std;
char FBI(string s);
int main()
{
int n;
cin >> n;
string s;
cin >> s;
cout << FBI(s);
return 0;
}
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));
}
bool is_1=false,is_0=false;
for(int i=0;i<s.length();i++)
{
if(s[i]=='1')
is_1=true;
if(s[i]=='0')
is_0=true;
}
if(is_1==true&&is_0==true)
return 'F';
if(is_1==false&&is_0==true)
return 'B';
if(is_1==true&&is_0==false)
return 'I';
}
最新文章
- poj3122-Pie(二分法+贪心思想)
- NIO与AIO,同步/异步,阻塞/非阻塞
- Thread.join()方法
- 安装mongodb 远程服务器报错
- qsort函数、sort函数【转】
- oracle 空间大小查询
- Makefile内嵌函数
- CoreAnimation(CA)
- 记录更新rbenv 和 ruby-build安装2.3的ruby注意细节
- BZOJ 1629: [Usaco2007 Demo]Cow Acrobats
- php 执行linux 命令函数
- Atlassian、Slack 以及 ChatOps 未来的前景如何?
- JavaScript之一: 闭包、执行环境、作用域链
- javascript location对象
- Linq第一讲
- Java实现读取文章中重复出现的中文字符串
- vscode keys
- 关于react的一些东西
- [ZZ]知名互联网公司Python的16道经典面试题及答案
- 在WPF中实现平滑滚动