最长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交替子串(浪潮笔试题) 的相关文章

  • 计蒜客 蒜头君的新游戏(DP)

    蒜头君的新游戏 include
  • 形象讲解Android中dpi,dp和px之间的关系(设计师如何与程序员沟通)

    屏幕尺寸指屏幕 显示屏 对角线的长度 单位为英寸 dpi dots per inch 像素密度 指每英寸中的像素数 1 在android中 160dpi设备下 1px 1dp 160dpi表示一英寸中包含160个像素点 px 即把一英寸平均
  • 背包问题,硬币问题

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

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

    Problem acm hdu edu cn showproblem php pid 1074 题意 n 份作业 分别给出名字 完成所需时间 cost 最迟上交时间 deadline 作业每迟交一天扣一分 问最少的扣分数 Analysis
  • 【DP练习】美元DOLLARS

    1040 练习题目 美元DOLLARS Description 在以后的若干天里戴维将学习美元与德国马克的汇率 编写程序帮助戴维何时应买或卖马克或美元 使他从100美元开始 最后能获得最高可能的价值 Input 输入文件的第一行是一个自然数
  • 蓝桥杯--砝码称重(dp)

    砝码称重 题目评测 你有一架天平和 N 个砝码 这 N 个砝码重量依次是 W1 W2 WN 请你计算一共可以称出多少种不同的正整数重量 注意砝码可以放在天平两边 输入格式 输入的第一行包含一个整数 N 第二行包含 N 个整数 W1 W2 W
  • hdu 1058 Humble Numbers

    Problem acm hdu edu cn showproblem php pid 1058 题意 找出从小到大第 n 个因子 除了 1 和本身 只有 2 3 5 7 的数 即第 n 个 num 2 a 3 b 5 c 7 d 的数 据说
  • codeforces Gym 101341 K Competitions

    Problem codeforces com gym 101341 problem K vjudge net contest 162325 problem K Meaning 有 n 场比赛 每一场有 开始时间 a 结束时间 b 价值 c
  • Wireless Password 【HDU - 2825】【AC自动机+状压DP】

    题目链接 好题一道 推了一会 然后计算了一下时间复杂度 差不多最坏情况是25 100 1024 26 66560000然后看了下 嗯 能搞 有搞头哈哈哈 然后写了一下 首先 WA了 发现竟然是最大极限哪儿写错了 我的个天呐 A 我们看到最多
  • linux--shell错误:syntax error near unexpected token ‘('

    这几天编写了几个简单的shell程序 然后都出现了syntax error near unexpected token 的错误 然后实在是检查不出错误 后面百度了才找到的原因 之前错误的程序片段如下 usr whoami dr pwd 提示
  • DP和HDMI区别

    转自 https www toutiao com i6877677362054595080 在目前市面上显示器接口中 VGA和DVI已经逐渐退出了历史舞台 Type C还算是小众 而DP DisplayPort 与HDMI则成为了主流产品的
  • Economic Difficulties【DP】【Codeforces 1263 F】

    Codeforces Round 603 Div 2 F 题意 给你两棵树 结点分别是1 A与1 B 然后给了N台设备 并且A树和B树的叶子结点都是链接设备的 问的是 我们最多可以割几条边使得每个设备都能链接A树或者B树上任意的一个 1 号
  • Human Gene Functions

    http acm hdu edu cn showproblem php pid 1080 Problem Description It is well known that a human gene can be considered as
  • 递归、加法原理,如何分解问题(独立且完备的划分)

    加法原理适用于做一件事有n种独立不相交且完备的方向 每个方向上有ai种方案 则总的方案数就是 a1 a2 an 例题 把n个数分为k个非空子集 有多少种分法 分解问题 第一个集合里放多少个数把原问题的解分成了独立且完备的若干方向 分别解每个
  • [HDU 5079][2014 Asia AnShan Regional Contest]Square(DP套DP)

    题目链接 http acm hdu edu cn showproblem php pid 5079 题目大意 给你一个 n n n 8 n middot n n le 8 的棋盘 上面有一些格子必须是黑色 其它可以染黑或者染白 对于一个棋盘
  • 备战2023蓝桥国赛-传纸条

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

    题目1 扑克牌 时间限制 2000ms 单点时限 1000ms 内存限制 256MB 描述 一副不含王的扑克牌由52张牌组成 由红桃 黑桃 梅花 方块4组牌组成 每组13张不同的面值 现在给定52张牌中的若干张 请计算将它们排成一列 相邻的
  • [蓝桥杯 2014 省 A] 波动数列

    题目链接 蓝桥杯 2014 省 A 波动数列 题目描述 观察这个数列 1 3 0 2
  • 插入数计数类 / 转为换行类dp:AT_agc024_e

    https www luogu com cn problem AT agc024 e 首先题目可以转化成每次插入一个数 满足字典序递增 如果只考虑暴力dfs 先别上dp 想想怎么合法和不算重 合法 也就是插入数有3种情况 插到末尾 插到比他

随机推荐

  • 扫频的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结尾两种 然后题目中说允许反转一个连续区间 那么根据