Leetcode 3138. Minimum Length of Anagram Concatenation

  • Leetcode 3138. Minimum Length of Anagram Concatenation
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3138. Minimum Length of Anagram Concatenation

1. 解题思路

这一题的话我们首先统计出来所有的字母出现的频率。

然后,我们只需要从头开始重新计数一下,当出现的第一个位置满足所有的字母出现的频次均为所有频次的 1 / k 1/k 1/k时,即可满足条件,我们返回当前的subarray的长度即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minAnagramLength(self, s: str) -> int:
        cnt = Counter(s)
        cnt = [cnt[ch] for ch in string.ascii_lowercase]
        
        def is_divisible(cnt, _cnt):
            if any(x != 0 and y == 0 for x, y in zip(cnt, _cnt)):
                return False
            k = -1
            for i in range(26):
                if cnt[i] == 0:
                    continue
                if cnt[i] % _cnt[i] != 0:
                    return False
                if k == -1:
                    k = cnt[i] // _cnt[i]
                else:
                    if cnt[i] // _cnt[i] != k:
                        return False
            return True
        
        stat = [0 for _ in range(26)]
        for i, ch in enumerate(s):
            stat[ord(ch) - ord('a')] += 1
            if is_divisible(cnt, stat):
                return i+1
        return len(s)

提交代码评测得到:耗时731ms,占用内存17.5MB。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/593969.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑怎样才能每天定时自动打开指定文件?定时打开指定文件的方法

要实现电脑每天定时自动打开指定文件,你可以采用多种方法,其中最常见和可靠 的是使用汇帮定时精灵和操作系统的任务计划程序。下面我将为你详细介绍这两种方 法。 方法一,使用汇帮定时精灵【汇帮定时精灵】提供了更多的选项和功能&#xff0c…

Git常用(持续更新)

常用场景: 初始化: git config --global user.name "codelabs" git config --global user.email mycodelabs.com git init git remote add origin https://github.com/username/repository.git git pull origin master 提交: gi…

开源版本管理系统的搭建二:SVN部署及使用

作者:私语茶馆 1. Visual SVN Server部署 SVN Server部署包括: 创建版本仓库创建用户 这些部署是通过VisualSVN Server Manager实现的,如下图: VisualSVN Server Manager(安装后自带) 1.1.SVN 初始化配…

Fourier 测试时间自适应与多级一致性用于鲁棒分类

文章目录 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification摘要方法实验结果 Fourier Test-Time Adaptation with Multi-level Consistency for Robust Classification 摘要 该研究提出了一种名为 Fourier 测试时间适应(FTT…

windows驱动开发-内核调度(一)

驱动层面的调度和同步一向是内核中比较困难的部分,和应用层不一样,内核位于系统进程下,所以它的调度和同步一旦出现纰漏,那会影响所有的程序,而内核并不具备对于这种情况下的纠错能力,没有异常手段能够让挂…

workminer之dht通信部分

workminer是通过SSH爆破传播的挖矿木马,感染后会释放xmrig挖矿程序利用主机的CPU挖取北方门罗币。该样本能够执行特定的指令,指令保存在一个配置文件config中,config文件类似于xml文件,里面有要执行的指令和参数,样本中…

BUUCTF---misc---[BJDCTF2020]纳尼

1、下载附件是一个gif图片,但是图片打不开 2、用winhex分析,看到缺少了文件头 3、将文件头通过ASCII码方式粘贴后,保存,图片恢复了正常 4、是一张动图,一共四张,每张都有base64编码 5、用stegsolve分解图…

【竞技宝jjb.lol】LOL:TES顺利晋级却暴露问题

北京时间2024年5月5日,英雄联盟2024MSI季中赛正在如火如荼的进行之中,目前入围赛阶段的比赛已经进入尾声,入围赛实力最强的两支战队T1、TES都已经顺利晋级淘汰赛阶段,在昨天的比赛结束之后,A组的FLY、PSG,B组的FNC、GAM将争夺剩下的两个出线名额。 回顾这次入围赛中,T1和TES的比…

buu相册

010分析是一个rar文件,7z打开发现是一个apk文件 但没发现什么敏感信息 全局搜索mail 然后就是查看引用与出处 base解密完是一个邮箱,提交对了。

vivado 在硬件中调试串行 I/O 设计-属性窗口

只要在“硬件 (Hardware) ”窗口中选中 GT 或 COMMON 块、在“链接 (Link) ”窗口中选中链接 , 或者在“扫描 (Scan)”窗口中选中扫描 , 那么就会在“ Properties ”窗口中显示该对象的属性。对于 GT 和 COMMON , 包括这些对象的所有属性、…

01 JVM -- JVM 体系结构、HotSpot

1. JVM、HotSpot、 OpenJDK 的区别 JVM (Java Virtual Machine) 是一个虚拟机HotSpot 是 JVM 规范的一个实现。HotSpot 虚拟机通过即时编译 (JIT) 技术将 Java 字节码转换为本地机器码,以提高程序的执行效率。OpenJDK 是一个项目名,它在 HotSpot 的基础…

常见的零拷贝技术

传统IO 基于传统的IO方式,底层实际上通过调用read()和write()来实现。通过read()把数据从硬盘读取到内核缓冲区,再复制到用户缓冲区;然后再通过write()写入到socket缓冲区,最后写入网卡设备。整个过程发生了4次用户态和内核态的上…

[Kubernetes] 安装KubeSphere

选择4核8G(master)、8核16G(node1)、8核16G(node2) 三台机器,按量付费进行实验,CentOS7.9安装Docker安装Kubernetes安装KubeSphere前置环境: nfs和监控安装KubeSphere masternode1no…

RK3568 学习笔记 : 精简 u-boot env 默认复杂的多种引导启动设置

前言 环境: 正点原子 Atompi-CA1 RK3568 开发板、正点原子 DLRK3568 开发板,(一时脑热买了两块 RK3568 开发板),Atompi-CA1 RK3568 开发板比较小巧,利于一些前期的嵌入式 Linux 开发学习与实践。 RK3568 开…

小红的循环移位

题目描述:小红拿到了一个数字串,她每次操作可以使得其向左循环移动一位。将串 ss0 s1...sn−1s ​ 向左循环移动一位,将得到串s1...sn−1s0。小红想知道,使得该数字串变成4的倍数,需要最少操作多少次?&…

推荐网站(1)懒人Excel,函数公式、操作技巧等,一看就看会

相信很多小伙伴打开excel表的时候,不知道要怎么操作,也不知道该如何搜索自己想要的结果,那么我推荐个网站懒人Excel,它可以帮我们快速了解使用 EXCEL的基本操作,也可以帮我们解决使用 EXCEL的遇到的问题。 可以看到他…

PCIe总线-事物层之TLP格式介绍(五)

1.概述 PCIe总线事务层位于应用层和数据链路层之间。发送时将应用层的数据请求转换成PCIe总线事务,然后发送到数据链路层。接收时,从来自数据链路层报文中提取PCIe总线事务,并将数据提交到应用层。事务层使用TLP表示PCIe总线事务&#xff0c…

RK3568笔记二十四:基于Flask的网页监控系统

若该文为原创文章,转载请注明原文出处。 此实验参考 《鲁班猫监控检测》,原代码有点BUG,已经下载不了。2. 鲁班猫监控检测 — [野火]嵌入式AI应用开发实战指南—基于LubanCat-RK系列板卡 文档 (embedfire.com) 一、简介 记录简单的摄像头监…

C++程序设计:C++的内存分布与管理

C的内存分布与管理 栈区堆区全局区代码区常量区 栈区 (1)什么是栈区? 栈区(Stack) 是用于存储函数调用,局部变量和函数参数的一种内存区域,它的特性就是先进后出(FILO)。…

ES数据存储与查询基本原理

Elasticsearch(ES)简介 Elasticsearch(ES)是一个分布式、可扩展、近实时的搜索和分析引擎,它基于Lucene,设计用于云计算中,处理大规模文档检索和数据分析任务,常用于实现内部搜索引…
最新文章