不连续1的子串,据说中大2019机试真题?

2023-11-03

推荐一个网站:N诺 https://www.noobdream.com/
似乎很多高校的真题都有诶,大家可以去试一试!

题目描述:

串只包含0或者1,给定一个数字,输出以此为长度的01串不含连续1的串的个数。
如输入3,则输出5,因为长度为3的01串不含连续1的串包括000, 001, 010, 100, 101。

输入输出格式:

输入描述:输入一个整数N(N<=20)
输出描述:输出结果

解题思路:一

列举可以观察发现,
输入0 输出1 //有0
输入1 输出2 //有1 0
输入2 输出3 //有00 01 10
输入3 输出5 //有000, 001, 010, 100, 101
输入4 输出8 //有0000,0001,0010,0100,1000,1010,1001,0101
这样看就很明显的斐波那契数列了吧,递归解决!

#include<bits/stdc++.h>//c++万能头文件
using namespace std;
int fab(int n){
	if(n==0)return 1;
	if(n==1)return 2;
	if(n>=2)return fab(n-1)+fab(n-2);
}
int main(){
	int n,result;
	cin>>n;
	result=fab(n);
	cout<<result;
	return 0;
}

解题思路:二

申请一个数组存储斐波那契数列:

#include<iostream>
using namespace std;
int fun(int n){
	int a[25];
	a[1]=2;
	a[2]=3;
	for(int i=3;i<25;++i){
		a[i]=a[i-1]+a[i-2];
	}
	return a[n];
}

int main(){
	int n,result;
	cin>>n;
	result=fun(n);
	cout<<result;
	return 0;
}

解题思路:三

申请一个dp数组存储斐波那契数列规则:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    int dp[25];
    dp[0] = 1;
    dp[1] = 2;
    for(int i = 2; i <= n; i++){
        dp[i] = dp[i - 2] + dp[i - 1];
    }
    printf("%d\n", dp[n]);
}

解题思路:四 若想不到斐波那契数列

#include <iostream>
#include <set>
using namespace std;
set<string> st;
void helper(string s, int l, int n) {
	if(l==n) {//长度为1
		st.insert(s);
		return;
	}
	if(s.back()=='1')//1后只能接0
		helper(s+'0', l+1, n);
	else {//0后可接0,1
		helper(s+'0', l+1, n);
		helper(s+'1', l+1, n);
	}
}

int main() {
	int n;
	cin >> n;
	string s;
	helper(s, 0, n);
	cout << st.size() << endl;
	return 0;
}

set集合容器:加头文件#include
  实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,
它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,
而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,
这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。
set的各成员函数列表如下:

begin()–返回指向第一个元素的迭代器

clear()–清除所有元素

count()–返回某个值元素的个数

empty()–如果集合为空,返回true

end()–返回指向最后一个元素的迭代器s.back()//最后一元素

equal_range()–返回集合中与给定值相等的上下限的两个迭代器

erase()–删除集合中的元素

find()–返回一个指向被查找到元素的迭代器

get_allocator()–返回集合的分配器

insert()–在集合中插入元素

lower_bound()–返回指向大于(或等于)某值的第一个元素的迭代器

key_comp()–返回一个用于元素间值比较的函数

max_size()–返回集合能容纳的元素的最大限值

rbegin()–返回指向集合中最后一个元素的反向迭代器

rend()–返回指向集合中第一个元素的反向迭代器

size()–集合中元素的数目

swap()–交换两个集合变量

upper_bound()–返回大于某个值元素的迭代器

value_comp()–返回一个用于比较元素间的值的函数

一些c++头文件

#include
#include
#include
#include
#include
#include<string.h>
#include
#include <stdio.h>
#include <math.h>
#include<stdlib.h>
就这样!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不连续1的子串,据说中大2019机试真题? 的相关文章

随机推荐

  • 数组 只出现一次的数字

    题目 只出现一次的数字 说明 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 Swift 题目 只出现一次的数字 说明 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出
  • React生命周期执行顺序详解

    文章内容转载于https www cnblogs com faith3 p 9216165 html 一 组件生命周期的执行次数是什么样子的 只执行一次 constructor componentWillMount componentDid
  • qemu: could not load PC BIOS 'bios-256k.bin'

    qemu kvm 创建虚拟机时报错了 qemu could not load PC BIOS bios 256k bin 我在指定了BIOS后仍然不对 使用 find bios 256k bin 我发现 bios 256k bin是一个软连
  • 【shell】-exec和xargs

    目录 实现效果 参数说明 exec参数 xargs参数 exec和xargs 后执行多条语句 exec和xargs 执行自定义函数 如何正确组合 xargs bash c 和环境变量 exec和xargs的区别 exec和xargs的区别
  • C++primer U10 读书笔记 关联容器

    pair 类型 pair
  • 当出现jquery”ScriptResourceMapping时

    在使用MVC框架的时候出现这个问题 jquery ScriptResourceMapping 有以下几个参考步骤 1 添加引用 管理NuGet程序包 在搜索框中搜索jquery 版本有更新 在右侧点击安装jqu 安装后显示script文件
  • unity2D备忘志

    一 角色移动 unity里面的transform组件非常好用 transform right这种枚举值真的很方便 Vector2向量 控制移动方向 Input输入非常非常方便 后面章节有刚体移动 应用也很广泛 transform Trans
  • 质数判断算法

    有人做过这样的验算 1 2 1 41 43 2 2 2 41 47 3 2 3 41 53 于是就可以有这样一个公式 设一正数为n 则n 2 n 41的值一定是一个质数 这个式子一直到n 39时 都是成立的 但n 40时 其式子就不成立了
  • threejs使用tweenjs实现点击标签过渡到相应视角

    效果图 1 点击前 2 点击后 说明 效果就是我在给模型打标签时保存视角和坐标 点击标签的时候读取到坐标数据 再转动到对应视角 1 安装 TWEEN npm install save tweenjs tween js 2 在当前页引入 im
  • springboot整合springcache (redis)

    1 引入依赖
  • 阿里巴巴的18位创始人

    1999年 阿里巴巴集团成立 当时共有18位创始人 大部分是马云的同事 朋友和学生 这篇文章汇总了这18个人的公开资料 马云是阿里巴巴的代言人 然而 事实上 自1999年成立以来 还有17位重要人物共同创立了这家电子商务巨头 但是他们是谁
  • 微信小程序 scroll-view 组件的 bindscroll 不触发不生效

    使用微信小程序基础组件中的scroll view 但是滑动的时候 bindscroll 一直不生效
  • 授人以渔command not found: ***

    配置环境变量是每个开发人员绕不开的初级本领 搜了一下大多数博客都是列出自己系统配置的步骤 授人以鱼不如授人以渔 今天记录一下自己配置验证的方法过程 方便初学者配置 本文围绕 我在macOS配置http server的探究验证过程 1 下载
  • CMD 命令和 ENTRYPOINT 命令的区别

    目录 CMD 命令 CMD shell 形式 1 创建 Dockerfile1 2 构建和运行新镜像 3 覆盖 CMD 4 添加命令选项 CMD exec形式 1 创建Dockerfile2 构建和运行新镜像 2 覆盖 CMD和添加命令选项
  • nginx 常用指令 try_files allow root alias

    nginx 常用指令 try files allow root alias 正则匹配条件 为区分大小写匹配 为不区分大小写匹配 和 分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配 其中 f和 f用来判断是否存在文件 d和 d用来
  • Transformer:SegFormer个人总结

    文章目录 前言 一 创新点 二 算法原理 2 1 总体框架 2 2 分层的Transformer结构 2 2 1 Hierarchical Feature Representation 2 2 2 Overlapped Patch Merg
  • CVE-2013-2028 经典栈溢出漏洞复现资料整理

    一个经典的由整数溢出导致栈溢出的漏洞 下面感觉写的有点乱 复现漏洞 CVE 2013 2028 nginx 栈溢出漏洞 相关基础知识 栈的基础知识 https ctf wiki github io ctf wiki pwn linux st
  • C语言——void指针、NULL指针、指向指针的指针、常量和指针

    目录 一 void指针 二 NULL指针 三 指向指针的指针 1 指向指针的指针 2 指针数组和指向指针的指针 四 常量和指针 1 常量 2 指向常量的指针 3 常量指针 4 指向 指向常量的常量指针 的指针 一 void指针 void指针
  • Centos7软件安装系列【九】安装postgresql

    安装 cd home software tar xzvf postgresql 9 6 8 tar gz cd postgresql 9 6 8 configure prefix usr local postgresql without r
  • 不连续1的子串,据说中大2019机试真题?

    推荐一个网站 N诺 https www noobdream com 似乎很多高校的真题都有诶 大家可以去试一试 题目描述 串只包含0或者1 给定一个数字 输出以此为长度的01串不含连续1的串的个数 如输入3 则输出5 因为长度为3的01串不