LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一个仅由字符 ‘0’ 和 ‘1’ 组成的字符串 s 。
一步操作中,你可以将任一 ‘0’ 变成 ‘1’ ,或者将 ‘1’ 变成 ‘0’ 。
交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。
例如,字符串 “010” 是交替字符串,而字符串 “0100” 不是。
返回使 s 变成 交替字符串 所需的 最少 操作数。
示例 1:
输入:s = "0100"
输出:1
解释:如果将最后一个字符变为 '1' ,s 就变成 "0101" ,即符合交替字符串定义。示例 2:
输入:s = "10"
输出:0
解释:s 已经是交替字符串。示例 3:
输入:s = "1111"
输出:2
解释:需要 2 步操作得到 "0101" 或 "1010" 。提示:
1 <= s.length <= 10^4
s[i] 是 '0' 或 '1'
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-changes-to-make-alternating-binary-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 分别考虑每个位置是 1,或者 0 的时候的最小操作次数,动态规划思想
class Solution {public:int minOperations(string s) {int one = s[0] == '0';int zero = s[0] == '1';int dp0, dp1;for(int i = 1; i < s.size(); ++i){if(s[i] == '1'){dp0 = one + 1;dp1 = zero;}else{dp0 = one;dp1 = zero + 1;}one = dp1;zero = dp0;}return min(zero, one);}
};
4 ms 6.8 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)相关推荐
- LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数
LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...
- C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数
C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...
- 1758 生成交替二进制字符串的最少操作数
题目描述: 给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...
- leetcode---1758.生成交替二进制字符串的最少操作数
目录 题目:给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...
- LeetCode-1758-生成交替二进制字符串的最少操作数
1.逐位遍历 我们想要获得最少操作数,实际上只要与两个字符串进行比较即可,一个是1010交替的字符串,一个是0101交替的字符串.其中我们实际上只需要比较一个字符串即可,因为修改成另一个字符串的操作数 ...
- LeetCode 1536. 排布二进制网格的最少交换次数
文章目录 1. 题目 2. 解题 1. 题目 给你一个 n x n 的二进制网格 grid,每一次操作中,你可以选择网格的 相邻两行 进行交换. 一个符合要求的网格需要满足主对角线以上的格子全部都是 ...
- LeetCode 1641. 统计字典序元音字符串的数目(DP)
文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n,请返回长度为 n .仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量. 字符串 s 按 字典序排列 需要满足 ...
- LeetCode——1888. 使二进制字符串字符交替的最少反转次数(Minimum Number of Flips to Make the Binary ...)[中等]——分析及代码(Java)
LeetCode--1888. 使二进制字符串字符交替的最少反转次数[Minimum Number of Flips to Make the Binary String Alternating][中等 ...
- LeetCode 1864. 构成交替字符串需要的最小交换次数
文章目录 1. 题目 2. 解题 1. 题目 给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 . 请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 . 交替字符 ...
最新文章
- mysql connection闪退重连_玩家排位巅峰赛开局闪退,重连失败,10分钟后一个提示让他懵了...
- 迟来总比没有好:SSE或服务器发送的事件现在已在JAX-RS中
- 技术人员转行产品经理读这些书就够了
- Traversing Mapping Filtering Folding Reducing
- 准备离职,工作的一些细节记录
- The Suspects(并查集入门)
- 请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
- ZBrush for Mac的插图技巧
- springBoot操作数据库方式
- 【房价预测】基于matlab GM模型房价预测【含Matlab源码 346期】
- 把ts自动合并 下载网页视频并自动合成视频
- C语言实现的获取文件夹内文件名
- Android学习笔记 二八 字体
- 刘德华--10有一种精神叫刘德华
- Spark history server fails to render compressed inprogress history file in some cases
- 操作rabbitMQ时,误删guest账户,无法登录
- (VS2008)Cannot open include file: 'windows.h': No such file or directory 解决办法
- 如何在手机下载微博APP中视频?【最新有效方法】
- Arcgis选择自己想要的区域地图
- 电气工程师软件笔试题
热门文章
- activiti 批量 mysql_Activiti6系列(3)- 快速体验
- loading gif 透明_搞笑GIF:有这样的女朋友下班哪里都不想去
- 更新10_linux,时隔十年,QQ更新了Linux版本
- php表示私有变量的是,PHP 访问私有和受保护的成员变量
- 转:VC中MessageBox的常见用法
- SQLite3基本使用从shell到python
- Bootloader启动过程
- 利用SharePoint Designer开发可循环工作流
- *如何循序渐进向DotNet架构师发展(转)
- tcp窗口滑动以及拥塞控制