原题传送门

思路


讲这道题之前,先讲一个黑科技一般的函数: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';
}

最新文章

  1. poj3122-Pie(二分法+贪心思想)
  2. NIO与AIO,同步/异步,阻塞/非阻塞
  3. Thread.join()方法
  4. 安装mongodb 远程服务器报错
  5. qsort函数、sort函数【转】
  6. oracle 空间大小查询
  7. Makefile内嵌函数
  8. CoreAnimation(CA)
  9. 记录更新rbenv 和 ruby-build安装2.3的ruby注意细节
  10. BZOJ 1629: [Usaco2007 Demo]Cow Acrobats
  11. php 执行linux 命令函数
  12. Atlassian、Slack 以及 ChatOps 未来的前景如何?
  13. JavaScript之一: 闭包、执行环境、作用域链
  14. javascript location对象
  15. Linq第一讲
  16. Java实现读取文章中重复出现的中文字符串
  17. vscode keys
  18. 关于react的一些东西
  19. [ZZ]知名互联网公司Python的16道经典面试题及答案
  20. 在WPF中实现平滑滚动

热门文章

  1. Jvisualvm简单使用教程
  2. sierpinski地毯(II)
  3. Java-100天知识进阶-GC种类-知识铺(六)
  4. HDU 1723 Distribute Message DP
  5. Window权限维持(八):时间服务器
  6. C++类型处理:typedef decltype
  7. 2019前端UI框架排行榜
  8. Java编程基础——标识符和关键字
  9. Java构造函数执行顺序
  10. Scrum冲刺第三篇