入门力扣自学笔记242 C++ (题目编号:1653)
创始人
2024-05-29 13:26:41
0

1653. 使字符串平衡的最少删除次数

题目:

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

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

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


示例 1:

输入:s = "aababbab"
输出:2
解释:你可以选择以下任意一种方案:
下标从 0 开始,删除第 2 和第 6 个字符("aababbab" -> "aaabbb"),
下标从 0 开始,删除第 3 和第 6 个字符("aababbab" -> "aabbbb")。


示例 2:

输入:s = "bbaaaaabb"
输出:2
解释:唯一的最优解是删除最前面两个字符。


提示:

1 <= s.length <= 105
s[i] 要么是 'a' 要么是 'b'​ 。​


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-deletions-to-make-string-balanced
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


思路:

首先,我们要进行两次遍历,分别统计字符串中a,b的最大数量。

其次,我们进行2次遍历,统计出来ab最大字符串的个数。

最后,用字符串总长度减去这个最大的个数,即可得到最终的结果。


代码:

class Solution {
public:int minimumDeletions(string s) {int n = s.size();int maxab = 0;vector lefta(n,0);vector rightb(n,0);lefta[0] = s[0] == 'a' ? 1 : 0;rightb[n - 1] = s[n - 1] == 'b' ? 1 : 0;for(int i = 1;i < n;i++){if(s[i] == 'a')lefta[i] = lefta[i-1] + 1;elselefta[i] = lefta[i-1];}for(int i = n-2;i >= 0;i--){if(s[i] == 'b')rightb[i] = rightb[i+1] + 1;elserightb[i] = rightb[i+1];}for(int i = 0;i < n;i++)maxab = max(maxab,lefta[i] + rightb[i]);return n - maxab;}
};

相关内容

热门资讯

热点推荐“牛至尊到底有没有透视... 您好,牛至尊这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
热点推荐“昭通棋乐麻将到底有没... 您好,昭通棋乐麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏...
热点推荐“pokerworld... 热点推荐“pokerworld到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器...
热点推荐“逍遥卡五星到底有没有... 您好:逍遥卡五星确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会...
热点推荐“讯奇麻将到底有没有透... 您好,讯奇麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“蜀南到底有没有透视挂... 亲,蜀南这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,蜀南的开挂软件,名称叫蜀南...
热点推荐“全民比鸡到底有没有透... 热点推荐“全民比鸡到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“四川家园到底有没有透... 热点推荐“四川家园到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“哈灵麻将到底有没有透... 热点推荐“哈灵麻将到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“快乐联盟到底有没有透... 快乐联盟这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游...
热点推荐“开云棋牌到底有没有透... 亲,开云棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,开云棋牌的开挂软件,名...
热点推荐“大赢家卡五星到底有没... 亲,大赢家卡五星这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,大赢家卡五星的开挂...
热点推荐“开心联盟到底有没有透... 您好,开心联盟这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“万载麻将到底有没有透... 热点推荐“万载麻将到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“奇趣互娱到底有没有透... 您好,奇趣互娱这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“韵味广东麻将到底有没... 韵味广东麻将这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这...
热点推荐“欢乐广东麻将到底有没... 热点推荐“欢乐广东麻将到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”...
热点推荐“牛小乐到底有没有透视... 您好:牛小乐确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现...
热点推荐“斗棋到底有没有透视挂... 热点推荐“斗棋到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能够完...
热点推荐“头脑风暴到底有没有透... 您好:头脑风暴确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...