C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数

  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,同时正在尝试在B站中做一些内容分享,B站主页为: 亓官劼的B站主页

本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!
若需联系博主,可以联系本人微信:qiguanjie2015


给你一个仅由字符 '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 <= 104
  • s[i]'0''1'

解题思路

比较当前数组有多少位不是交替相间的,记为cnt,则最小交换次数为min(cnt,len-cnt)

算法实现

class Solution {public:int minOperations(string s) {int cnt = 0, len = s.length();char f[2] = {'0','1'};for(int i = 0 ; i < len; i++)if(s[i] != f[i%2])cnt++;return min(cnt,len-cnt);}
};

C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数相关推荐

  1. LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个仅由字符 '0' 和 '1' 组成的字符串 s . 一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 ...

  2. LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数

    LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...

  3. 1758 生成交替二进制字符串的最少操作数

    题目描述: 给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  4. leetcode---1758.生成交替二进制字符串的最少操作数

    目录 题目:给你一个仅由字符 '0' 和 '1' 组成的字符串 s .一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' . 交替字符串 定义为:如果字符串中不存在相邻两个 ...

  5. LeetCode-1758-生成交替二进制字符串的最少操作数

    1.逐位遍历 我们想要获得最少操作数,实际上只要与两个字符串进行比较即可,一个是1010交替的字符串,一个是0101交替的字符串.其中我们实际上只需要比较一个字符串即可,因为修改成另一个字符串的操作数 ...

  6. C++描述 LeetCode 5677. 统计同构子字符串的数目

    C++描述 LeetCode 5677. 统计同构子字符串的数目   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...

  7. C/C++描述 LeetCode 周赛 5472. 重新排列字符串

    5472. 重新排列字符串   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博 ...

  8. LeetCode 1536. 排布二进制网格的最少交换次数

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 n x n 的二进制网格 grid,每一次操作中,你可以选择网格的 相邻两行 进行交换. 一个符合要求的网格需要满足主对角线以上的格子全部都是 ...

  9. C++描述 LeetCode 1768. 交替合并字符串

    C++描述 LeetCode 1768. 交替合并字符串   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯 ...

最新文章

  1. Java读取Properties配置文件
  2. c语言scanf结果在printf前,C语言中的scanf与printf
  3. 微前端在网易七鱼的实践
  4. 奇怪吸引子---Chua
  5. Python从数据库读取大量数据批量写入文件的方法
  6. 问题 | list(set(list))如何实现顺序不变
  7. 万万想不到!地球运行的真实轨迹原来是这样子!
  8. 百合数c语言360问答,《百合花》
  9. Ajax (部分二:prototype.js代码后半部分)自己做的,总结页面向后台传Form值、单个值和后台向前台传一个或是一组值...
  10. 加入HA后的完全分布式集群搭建
  11. 一个字由两个字节组成
  12. 超声波测深仪工作原理
  13. OpenStack私有云安装配置虚拟机
  14. 药用植物学-----植物的细胞
  15. c# 傅里叶变换 频域_C# 傅里叶变换 逆变换 调用MathNet包
  16. 类 SimpleDateFormat
  17. js 获得明天0点时间戳_开群通知!昨日提示厦门信达、申通地铁、国林科技、隆盛科技全部涨停!明天这只龙头股有望继续涨停!...
  18. 金蝶服务器出纳系统无法启动,金蝶财务软件如何启用出纳系统
  19. Android权限管理详解
  20. 安卓如何将数据转到iPhone上?

热门文章

  1. react 命名规范 书写顺序
  2. win11 右键菜单恢复成win10样式(亲测有效)
  3. diskpart命令磁盘分区
  4. 美团上交开源PromptDet:无需标注,开放世界的目标检测器
  5. html中的div是什么意思?
  6. STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并
  7. 手机远程服务器rd,手机远程连接服务器工具:RD client远程桌面使用教程
  8. 这几款超实用办公神器,让你的工作省心省时又省力!
  9. 视频播放器(二)——播放列表
  10. NLP 分类问题的讨论