当前位置: 首页 > news >正文

【从零开始的LeetCode-算法】3223. 操作后字符串的最短长度

给你一个字符串 s 。

你需要对 s 执行以下操作 任意 次:

  • 选择一个下标 i ,满足 s[i] 左边和右边都 至少 有一个字符与它相同。
  • 删除 s[i] 左边 离它 最近 且相同的字符。
  • 删除 s[i] 右边 离它 最近 且相同的字符。

请你返回执行完所有操作后, s 的 最短 长度。

示例 1:

输入:s = "abaacbcbb"

输出:5

解释:
我们执行以下操作:

  • 选择下标 2 ,然后删除下标 0 和 3 处的字符,得到 s = "bacbcbb" 。
  • 选择下标 3 ,然后删除下标 0 和 5 处的字符,得到 s = "acbcb" 。

示例 2:

输入:s = "aa"

输出:2

解释:
无法对字符串进行任何操作,所以返回初始字符串的长度。

提示:

  • 1 <= s.length <= 2 * 10^5
  • s 只包含小写英文字母。

我的解答:

class Solution {public int minimumLength(String s) {int res = s.length();Map<Character,Integer> map = new HashMap<Character,Integer>();for(char ch : s.toCharArray()){// 统计字符出现的次数map.put(ch,map.getOrDefault(ch,0) + 1);}for(char ch : map.keySet()){// 减去中间字符,查看还剩多少偶数对字符,将之减去res -= (map.get(ch) - 1) / 2 * 2;}return res;}
}

 


http://www.mrgr.cn/news/58955.html

相关文章:

  • uniApp 加载google地图 并规划路线
  • 数据结构之堆和二叉树的简介
  • git bisect和git blame
  • 【贪心算法】(第十四篇)
  • MFC实现以不规则PNG图片作为窗口背景
  • SpringBoot面试热题
  • Nature 正刊丨土壤质地对生态系统水分限制的全球影响
  • rabbitmq自学总结
  • docker 安装kuboard
  • STM32
  • 堆排序算法和Topk思想
  • java计算机毕设课设—连连看游戏(附源码、文章、相关截图、部署视频)
  • qsort函数排序结构体数据
  • 代码随想录刷题学习日记
  • 如何选择运维产品:以一体化管理为核心,提升运维效率与质量
  • ProTable样式缺失
  • Java基础知识异常
  • python学习笔记:___getattr__
  • 鸿蒙开发初级证书考试答案
  • Uni-App-01
  • 架构师备考专栏-导航页
  • C语言输入输出效率优化
  • layui表格反选功能
  • uniapp:上拉加载更多、下拉刷新、页面滚动到指定位置
  • 力扣33:搜索旋转排序数组
  • 从Docker容器中备份整个PostgreSQL