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

Python-41:最小替换子串长度

问题描述

小F得到了一个特殊的字符串,这个字符串只包含字符ASDF,其长度总是4的倍数。他的任务是通过尽可能少的替换,使得ASDF这四个字符在字符串中出现的频次相等。求出实现这一条件的最小子串长度。

代码

from collections import Counter

def solution(input):

    # Please write your code here

    s = input

    n = len(s)

    assert n % 4 == 0

    cnt = Counter(s)

    if all(cnt[c] <= n // 4 for c in cnt):

        return 0

    l, r = 0, 0

    res = n

    while r < n:

        cnt[s[r]] -= 1

        r += 1

        while all(cnt[c] <= n // 4 for c in cnt) and l < r:

            res = min(res, r - l)

            cnt[s[l]] += 1

            l += 1

    return res

if __name__ == "__main__":

    #  You can add more test cases here

    print(solution("ADDF") == 1 )

    print(solution("ASAFASAFADDD") == 3)

http://www.xdnf.cn/news/2162.html

相关文章:

  • uml类关系(实现、继承,聚合、组合,依赖、关联)
  • Word/WPS 删除最后一页空白页,且保持前面布局样式不变
  • Linux——进程间通信
  • Android Compose 框架矢量图标深入剖析(七)
  • C语言中结构体的字节对齐的应用
  • ABAP Object Services
  • 纯PHP写的自适应收款单页源码(对接易支付)
  • WPF 调用 OpenCV 库
  • ChatGPT、deepseek、豆包、Kimi、通义千问、腾讯元宝、文心一言、智谱清言代码能力对比
  • Linux线程与进程:探秘共享地址空间的并发实现与内
  • w~嵌入式C语言~合集3
  • pymongo功能整理与基础操作类
  • 16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Github Action
  • 深入解析 ASP.NET Core 中的 ResourceFilter
  • Eclipse 插件开发 4 工具栏
  • 华为云loT物联网介绍与使用
  • RD电子实验记录本选用贴士A-B-C
  • 用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1
  • 泰迪杯实战案例学习资料:生产线的故障自动识别和人员配置优化
  • Android7 Input(五)InputDispatcher
  • 实现从一个微信小程序跳转到另一个微信小程序
  • 优化 Nginx 配置主域名重定向与 Mongrel 规则迁移
  • 搭建动态SQL取数
  • 【计算机视觉】CV实战项目 -深度解析PaddleSegSharp:基于PaddleSeg的.NET图像分割解决方案
  • 【专题三】二分查找(2)
  • canvas画板!随意画!!
  • egg环境搭建
  • AT6850—GNSS卫星导航定位SOC芯片
  • 【OSG学习笔记】Day 9: 状态集(StateSet)与渲染优化 —— 管理混合、深度测试、雾效等渲染状态
  • LibAI Lab闪耀AI出海峰会:技术深耕与全球化增长的双重奏