题目链接:Leetcode 1653. 使字符串平衡的最少删除次数

题意:

给你一个字符串 s ,它仅包含字符 'a' 和 'b'​​​​ 。

你可以删除 s 中任意数目的字符,使得 s 平衡 。我们称 s 平衡的 当不存在下标对 (i,j) 满足 i < j 且 s[i] = 'b' 同时 s[j]= 'a' 。

请你返回使 s 平衡 的 最少 删除次数。

解题思路:

从左向右,a如果在左边,不用删除,b 如果在右边不用删除

class Solution {
public:int minimumDeletions(string s) {int n = s.size();int ans = 0, res = 0;int left = 0;for(left = 0; left < n; left++) {   // 左边一直是aif(s[left] != 'a') {break;}}for(int i = left; i <= n; i++) {if(s[i] == 'a') {   // 出现a的个数ans++;} else {       // 开始出现b的个数res++;}if(ans > res) {    // 如果要删除的a的个数大于删除b的个数,那么删除bans = res;}}return min(ans, res);  // a 和 b 哪个少删除哪个}
};

Leetcode 1653. 使字符串平衡的最少删除次数相关推荐

  1. LeetCode 1653. 使字符串平衡的最少删除次数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,它仅包含字符 'a' 和 'b'​​​​ . 你可以删除 s 中任意数目的字符,使得 s 平衡 . 我们称 s 平衡的 当不存在下标 ...

  2. LeetCode 1671. 得到山形数组的最少删除次数(最长上升子序DP nlogn)

    文章目录 1. 题目 2. 解题 2.1 n^2 解法 2.2 nlogn 解法 197 / 1891,前10.4% 435 / 6154,前7.07% 前三题如下: LeetCode 5557. 最 ...

  3. LeetCode 1674. 使数组互补的最少操作次数(差分思想)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 偶数 n 的整数数组 nums 和一个整数 limit . 每一次操作,你可以将 nums 中的任何整数替换为 1 到 limit 之间的 ...

  4. Leetcode1963. 使字符串平衡的最小交换次数[C++题解]:贪心

    文章目录 题目 题解 题目 题目来源:https://leetcode-cn.com/problems/minimum-number-of-swaps-to-make-the-string-balan ...

  5. LeetCode 921. 使括号有效的最少添加(栈)

    1. 题目 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字 ...

  6. LeetCode 1568. 使陆地分离的最少天数(DFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个由若干 0 和 1 组成的二维网格 grid ,其中 0 表示水,而 1 表示陆地. 岛屿由水平方向或竖直方向上相邻的 1 (陆地)连接形成. 如 ...

  7. Java实现 LeetCode 801 使序列递增的最小交换次数 (DP)

    801. 使序列递增的最小交换次数 我们有两个长度相等且不为空的整型数组 A 和 B . 我们可以交换 A[i] 和 B[i] 的元素.注意这两个元素在各自的序列中应该处于相同的位置. 在交换过一些元 ...

  8. LeetCode 801. 使序列递增的最小交换次数(动态规划)

    1. 题目 我们有两个长度相等且不为空的整型数组 A 和 B . 我们可以交换 A[i] 和 B[i] 的元素.注意这两个元素在各自的序列中应该处于相同的位置. 在交换过一些元素之后,数组 A 和 B ...

  9. leetcode - 801. 使序列递增的最小交换次数

    解题思路:使用两个状态量来存储信息: swap[i]表示交换A和B中第i个数字,A和B中前i个数字达到严格递增所需要的最小交换次数. keep[i]表示不交换A和B中第i个数字,A和B中前i个数字达到 ...

  10. LeetCode 995. K 连续位的最小翻转次数(差分思想)

    文章目录 1. 题目 2. 解题 1. 题目 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 ...

最新文章

  1. DevExpress学习之DevExpress.XtraGrid.Columns.GridColumn
  2. Leetcode 392. 判断子序列 (每日一题 20210929)
  3. 一篇文章入门深度学习框架PyTorch
  4. mpvue template compiler 中文版教程
  5. _VARIANT_T 到 CSTRING 转换
  6. 这就是数据分析之数据采集
  7. WIn server 2012 Install
  8. linux内存机制的virt,关于linux:转载理解virt-res-shr之间的关系
  9. TP5.0 PHPExcel 数据表格导出导入(原)
  10. Python2 获取docx/doc文件内容
  11. Windos下的UPD服务器端的C++实现
  12. poi excel 隐藏行
  13. 桌面IE图标删不掉解决方案
  14. python docx_python-docx 入门
  15. java版飞机大战代码
  16. 【腾讯阿里最全面试题】介绍下Synchronized、Volatile、CAS、AQS,以及各自的使用场景
  17. asp.net core ABP模板本地化设置
  18. 手机发起PPT课件文档直播实测效果
  19. 烛光晚餐矢量图(编号:82204)_日常生活_矢量人物_矢量素材
  20. Java NIO(四)选择器Selector

热门文章

  1. 药渡网和药融云免费使用方法
  2. 微型计算机的组装步骤,微型计算机系统装配教程
  3. 头条小程序服务器设置,今日头条小程序如何注册申请
  4. launch参数JAVA_javafx主要方法launch(args)如何工作? - java
  5. ROS Launch使用总结
  6. String.Empty、string=”” 和null的区别
  7. iMeta | 深圳先进院戴磊组开发可同时提取共存菌株的组成和基因成分谱的菌株分析工具...
  8. Partitioning big graph with respect to arbitrary proportions in a streaming manner 菜鸟解读
  9. (算法)2048游戏
  10. scl函数C语言,SCL语言基本语法规则:表达式