最长01交替子串(浪潮笔试题)

2023-10-29

题意:给一个只有0和1的字符串,允许反转一个连续区间,即0变成1,1变成0,求最长的01交替串多长,允许不连续。

我最先想到的是动态规划解法,状态设计方面,首先一个串的状态会有以0结尾和以1结尾两种,然后题目中说允许反转一个连续区间,那么根据反转的前后,可以分为反转前,反转中(最后一个字符是被反转的)和反转后,所以组合起来,状态一共有6种,即反转前0结尾、反转中0结尾(未反转时为0,反转后为1)、反转后0结尾、反转前1结尾、反转中1结尾(未反转时为1,反转后为0)、反转后1结尾,然后每个状态的字符串具体是什么样子我们都可以不用关心,只需要关心每一种状态下长度最长的串是多多长。

然后是状态转移部分。当下一个字符是1时,1可以添加到反转前0结尾的串后面,然后长度加1,得到一个反转前1结尾的串;也可以反转成0添加到反转前1结尾的串后面,得到一个反转中以1结尾的串,以此类推:

下一个字符是0的时候同理:

但是要注意状态跟新的顺序,应该是从右往左更新的。否则的话,如果从左往右更新,一个字符会被计算三遍。

最后就可以得到每种状态下的最长串,然后选出最长的那个就是最后的结果。

最后的最后,此处假装有代码。

/*
笔试的时候代码并没有保存下来,所以此处并没有代码,如果讲的不够清楚的话会补充上
*/

 

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

最长01交替子串(浪潮笔试题) 的相关文章

  • 备战2023蓝桥国赛-移动服务

    题目描述 解析 这道题我想复杂了 一开始我是这样想的 设dp i j 表示按顺序满足到第i个请求时 最初在j号点的人到达第i个请求的位置的情况下的最小花费 state i j 表示按顺序满足到第i个请求时 最初在j号点的人到达第i个请求的位
  • 计蒜客 17319 The Heaviest Non-decreasing Subsequence Problem

    Problem nanti jisuanke com t 17319 Meaning 给一个整数序列 s 每个数都有个权值 权值的计算方法是 s i lt 0 s i 的权值为 0 s i gt 10000 s i 的权值为 5 且 s i
  • 背包问题,硬币问题

    至少有4种背包问题 1 01背包 2 部分背包 3 完全背包 4 多重背包 只有部分背包是个贪心问题 其他的都是以01背包为基础的动归问题 部分背包问题 把物品按价值密度从大到小排序 W i V i 然后从第一种物品开始 尽可能多拿当前物品
  • 算法课四

    算法报告四 Dijkstra算法 最短距离 16122020 钟顺源 一 题目大意 给出一张图 并给定起点和终点 问起点到终点的最短距离是多少 有两个特殊要求 1 如果从顶点i到顶点j有不止一条最短路径 那么输出路段数最少者 2 如果具有最
  • hdu 1059 Dividing

    Problem acm hdu edu cn showproblem php pid 1059 题意 6 种宝石 价值分别是 1 到 6 分别给出 6 种宝石的数量 问能不能分成等价值的两堆 分析 多重背包 主要是记录下多重背包的写法 对每
  • 【Luogu_P2758】编辑距离【动态规划】

    思路 设f i j 标识a匹配到i位 b匹配到j位 于是很好转移 c o d e code code include
  • hdu 1074 Doing Homework

    Problem acm hdu edu cn showproblem php pid 1074 题意 n 份作业 分别给出名字 完成所需时间 cost 最迟上交时间 deadline 作业每迟交一天扣一分 问最少的扣分数 Analysis
  • hdoj-1069-Monkey and Banana【动态规划】

    Monkey and Banana Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 9489 Acc
  • 16.4 线性DP练习——【字符串转换】

    文章目录 题目描述 输入描述 输出描述 输入输出样例 最终代码c c 过程理解 题目描述 小蓝拥有两个字符串S T 他希望通过如下操作使得字符S转换为字符串T 操作有一下三种 删除一个字符 插入一个字符 将一个字符改为另一个字符 问最少需要
  • Nikitosh and xor【字典树+dp】

    题目链接 比较明显的 正向一个推过去的字典树 再反向退回来的一个字典树 然后异或和用差分的方式解决 字典树一定是要从第29位开始往下的 千万别从第0位往上 include
  • 牛客网-网易2018笔试第7题 -合唱(DP问题)

    题目描述 小Q和牛博士合唱一首歌曲 这首歌曲由n个音调组成 每个音调由一个正整数表示 对于每个音调要么由小Q演唱要么由牛博士演唱 对于一系列音调演唱的难度等于所有相邻音调变化幅度之和 例如一个音调序列是8 8 13 12 那么它的难度等于
  • GYM 102059 G Fascination Street

    G Fascination Street 参考 给出一串n 2e5 个灯 每个灯点亮可以照到相邻三个位置 每个灯点亮都有不同的花费 现在可以交换k 9 次灯的位置 求把所有n个位置都照到的最小花费 交换的肯定是一个亮的灯和一个灭的灯 不然是
  • hdu 1080 Human Gene Functions

    Problem acm hdu edu cn showproblem php pid 1080 Meaning 给出一个二维表 similarity 表示对应核苷酸配对时的相似度值 横杠 表示用空格代替一个核苷酸 给出两个DNA序列 a 和
  • 递归、加法原理,如何分解问题(独立且完备的划分)

    加法原理适用于做一件事有n种独立不相交且完备的方向 每个方向上有ai种方案 则总的方案数就是 a1 a2 an 例题 把n个数分为k个非空子集 有多少种分法 分解问题 第一个集合里放多少个数把原问题的解分成了独立且完备的若干方向 分别解每个
  • Acwing2554. 排列数

    在一个排列中 一个折点是指排列中的一个元素 它同时小于两边的元素 或者同时大于两边的元素 对于一个 1 n 的排列 如果可以将这个排列中包含 t 个折点 则它称为一个 t 1 单调序列 例如 排列 1 4 2 3 是一个 3 单调序列 其中
  • 备战2023蓝桥国赛-传纸条

    题目描述 解析 这道题想了我好久 一开始我是想假如只走一条路线 从 1 1 走到 m n 这种问题该怎么解决呢 针对这种问题我是设了dp k i j 表示走了k步到达 i j 的好心程度之和的最大值 然后根据这个来写出转移方程来计算 后面就
  • 备战2023蓝桥国赛-饼干

    题目描述 解析 这道题我想了很多种解决方法 但无一例外都失败了 实在是按照常规线性DP的思路真的想不出来 看了题解之后才知道它是分为三步解决这个问题的 第一步 缩小最优解的范围 先用贪心将最优解缩小到某个较小的范围内 再DP求出精确的最优解
  • 洛谷P1028 [NOIP2001 普及组] 数的计算 —— 简单DP+双指针优化

    This way 题意 给出自然数 n n n 要求按如下方式构造数列 只有一个数字 n n n 的数列是一个合法的数列 在一个合法的数列的末尾加入一个自然数 但是这个自然数不能超过该数列最后一项的一半 可以得到一个新的合法
  • 【DP】拔河比赛

    题目 一个学校举行拔河比赛 所有的人被分成了两组 每个人必须 且只能够 在其中的一组 要求两个组的人数相差不能超过1 且两个组内的所有人体重加起来尽可能地接近 输入 输入数据的第1行是一个n 表示参加拔河比赛的总人数 n lt 100 接下
  • UVa 1347 Tour

    题目 Tour 题意 来自luogu John Doe想用最小的路程游览完所有目的地 每个目的地都用坐标xi yi表示 任何两目的地的xi都不相同 两目的地之间的路程是两点之间的直线距离 John是这样走的 他从最左边的点开始 然后只能向右

随机推荐

  • 扫频的matlab及FPGA实现

    扫频原理 已知扫频表达式 s t e x p
  • Linux文件I/O实验报告

    实验代码下载地址 https download csdn net download Qingyuyuehua 16305028 任务1 在当前用户目录下创建数据文件student txt 文件的内部信息存储格式为Sname S Sdept
  • sqli-lab教程——Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)

    题目名字暴露一切 本来不想看的 又瞥到了 布尔型盲注 单引号 id 1回显 价格单引号不回显 构造一下验证是不是布尔型payload id 1 and 1 1 回显了 证明没跑了 那就一步一步来吧 和less5一样的 根据回显判断 可以通过
  • clion三角形运行键是灰的_能打游戏能编程,如何用吃灰机器,安装完整ChromeOS(支持安卓)...

    常看IT新闻的人 一定听说过基于Chrome浏览器的系统ChromeOS 作为云系统的先行者 它的优点非常多 1 轻量 系统简单 资源占用少 低配硬件也能流畅运行 2 现代 界面风格统一 触摸手势好用 手感不输MacOS 3 同步 扩展程序
  • windows启动Docker失败提示:waiting for docker daemon: context deadline exceeded

    报错提示如下图 解决方法 以管理员方式打开CMD 运行netsh winsock reset 后 重启电脑之后再次启动Docker就可以了 如果还是没有效果可以尝试以下解决方法 检查Docker服务是否已启动 在命令行中输入 service
  • 完美解决eclipse中文注释错位、缩进、被放大BUG

    完美解决eclipse中文注释错位 缩进 被放大BUG 1 常规操作 2 另辟蹊径 2 1 基本思路 字体融合法 2 2 操作步骤 2 2 1 软件准备 2 2 2 文件准备 2 2 3详细步骤 3 写在最后 1 常规操作 这个BUG有大量
  • C++数组

    C 支持数组数据结构 它可以存储一个固定大小的相同类型元素的顺序集合 数组是用来存储一系列数据 但它往往被认为是一系列相同类型的变量 一维数组 一维数组定义的三种方式 1 数据类型 数组名 数组长度 2 数据类型 数组名 数组长度 值1 值
  • 总经理、总裁、总监、首席执行官,谁最了不起?

    总经理 总裁 总监 首席执行官 谁最了不起 中国的 头衔贬值 日趋严重 在中国 近来突然发现身边多了很多只有数名员工的 总裁 或者只管记帐的 财务总监 当然 在中国想要办点儿事 依靠个人的权限与力量是很关键的 因此也造成了这种刻意显示 自己
  • 如何把Eclipse改成中文版

    一 打开浏览器 输入http www eclipse org babel downloads php 如图所示 Babel Language 开头的一栏下面就是各个eclise版本的语言包 此处以Indigo版为例 二 目标锁定 Babel
  • Python 录入学生信息 提示用户在控制台输入3个学生的信息,学生信息包含姓名、年龄

    需求 按照以下要求完成代码的编写 第一步 录入学生信息 1 提示用户在控制台输入3个学生的信息 学生信息包含姓名 年龄 2 要求 封装录入单个学生信息的函数 并返回学生的信息 第二步 展示学生列表信息 1 封装打印学生信息的函数 格式要求如
  • sql sever——创建数据库

    创建数据库 并且指定存储数据库的主数据文件和日志文件 USE master GO CREATE DATABASE BOOK ON PRIMARY 主数据文件组primary NAME book data 主数据文件逻辑文件名 FILENAM
  • 力扣练习题(数组中数据反转)

    力扣练习题 数组中数据反转 要求 int arr 12 23 34 45 56 67 78 89 90 变为 int arr 90 89 78 67 56 45 34 23 12 思路 1 定义一个数组用静态初始化完成元素的初始化 2 循环
  • 剑指 Offer 39. 数组中出现次数超过一半的数字--java解法和心得

    class Solution public int majorityElement int nums 给数组排序 Arrays sort nums 排序后所找的元素比在中间 return nums nums length 2 拓展解法 摩根
  • 线程中断标志位 interrupt()、interrupted()、isInterrupted() 的认识

    常见问题 首先你是怎么去关闭一个开启的线程 调用中断方法之后 线程就立即停止运行吗 带着这两个问题探讨一下 主要围绕着这三个方法讲述 interrupt interrupted isInterrupted 归类为中断 什么是中断标识位 首先
  • 在js中forEach中使用try catch捕获异常

    forEach跳出循环使用try catch 这是我们都知道的 但是今天使用的时候发现出了问题 一 forEach中使用try catch捕获异常 如下图 1 正常情况下try catch是可以捕获到throw里面的内容 并且不会报错 程序
  • 二进制部署K8S

    目录 一 环境准备 1 常见的k8s部署方式 2 关闭防火墙 3 关闭selinux 4 关闭swap 5 根据规划设置主机名 6 在master添加hosts 7 将桥接的IPv4流量传递到iptables的链 8 时间同步 二 部署et
  • wireshark工具使用心得

    抓http包 但是protocal全部为tcp 并且Info也没有解析为http 打开 Edit Preferences 选择Protocals 选择http 在 tcp ports 中加入http端口 抓包数据不完整 清除浏览器缓存 再抓
  • 判断机器IP是公网ip还是内网ip

    首先是恭喜开通blog 对于ip是否是公网ip 网上已经有很多文章进行了描述 但我每次都记不太住 总要查找一下才又清楚 因此决定在这里记录下来 方便以后查询 ip地址分为五类 E类为保留为今后使用 D类为组播地址 用于主机网络地址的就是A类
  • windows套接字I/0模型-IOCP完成端口模型

    在 Windows 网络编程中 IOCP Input Output Completion Port 是一种高性能的 I O 模型 可以使应用程序能够处理大量并发 I O 操作 IOCP 模型主要通过事件通知和回调函数来处理异步 I O 操作
  • 最长01交替子串(浪潮笔试题)

    题意 给一个只有0和1的字符串 允许反转一个连续区间 即0变成1 1变成0 求最长的01交替串多长 允许不连续 我最先想到的是动态规划解法 状态设计方面 首先一个串的状态会有以0结尾和以1结尾两种 然后题目中说允许反转一个连续区间 那么根据