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

记力扣2516.每种字符至少取k个 练习理解

给你一个由字符 'a''b''c' 组成的字符串 s 和一个非负整数 k 。每分钟,你可以选择取走 s 最左侧 还是 最右侧 的那个字符。

你必须取走每种字符 至少 k 个,返回需要的 最少 分钟数;如果无法取到,则返回 -1 。

思路:

考虑到从正面做(即统计所有字符的数量然后分别从最左边遍历和右边遍历去减去总数,相对有点复杂),采用正难则反的办法,题目需要返回最少分钟数,我变相求出最长的数组且保证剩余k个所求每种字符即可,最后返回n-max_len即为最少分钟数

from collections import counter
class Solution:def takeCharacters(self,s:str,k:int)->int:cnt=counter(s)n=len(s)max_len=left=0if any(cnt[c]<k for c in "abc"):return -1for i,char in enumerate(s):cnt[char] -=1while cnt[char]<k:cnt[s[left]]+=1left +=1max_len=max(max_len,i-left+1)return n-max_len

难点:

我认为是能够想到这种办法,这种正难则反的思路,认识到 "最少取出字符数" 等价于 "最多保留字符数",而 "最多保留字符数" 又等价于 "从原始字符串中移除一段连续子串后剩下的字符数最多"

http://www.dtcms.com/a/403963.html

相关文章:

  • 广州站电话科创纵横 网站建设
  • 进程与集群:提升性能
  • 北京建设信源官方网站如何让wordpress文本小工具支持php和简码?
  • NLP算法岗位面试题精讲:深入理解LoRA与QLoRA
  • 基于神经控制微分方程的采集无关深度学习用于定量MRI参数估计|文献速递-文献分享
  • 无锡嘉饰茂建设网站的公司天河区网站制作
  • 应用程序映像(Application Image)是什么?
  • 访问的网站显示建设中wordpress tag伪静态
  • 单调速率调度(RMS)算法
  • 百度智能云一念·智能创作平台
  • 做网站订阅号丰台建设企业网站
  • shell编程:sed - 流编辑器(2)
  • 在Grafana中配置MySQL数据源并创建查询面板
  • 做的比较好的二手交易网站有哪些小学学校网站建设计划书
  • OneSignal v2 PHP手搓请求消息推送-供参考
  • 中国建站公司wordpress主题 下单
  • Qt DPI相关逻辑
  • 约束优化问题的常用解决办法及优缺点、轨迹规划中应用
  • 电子元器件基础知识day1
  • 【C++游记】C++11特性
  • 光子、光量子、量子三者的关系
  • 网站更改目录做301承德信息网络有限公司
  • Pytorch中stack()方法的总结及理解
  • 网站建设需要那种技术开一个网站多少钱
  • 在windows系统如何使用docker将nginx容器化部署
  • 【异世界历险之数据结构世界(二叉搜索树)】
  • 宁夏建设银行网站好的兼职做调查网站
  • SQLMap数据库枚举靶机(打靶记录)
  • 镇江建设工程质量监督局网站虹口 教育 网站建设
  • stm32移植elog