day-42 分割字符频率相等的最少子字符串

news2024/11/10 7:46:14

在这里插入图片描述
思路
动态规划的思想,dp[i]表示从s[0]到s[i]这一子串的最少平衡子串数,当s[i]到s[n-1]是平衡字符串时,dp[i]=dp[j-1]+1,所以状态转换方程为dp[i]=Math.min(dp[j-1]+1)(1<=j<=i)

解题过程
判断是否为平衡字符串,利用哈希表存储存储每种字符出现的次数。为了判断快速判断所有字符出现的次数是否相等,我们可以维护所有字符出现次数的最大值 maxVal,当满足map.size()*maxVal==i-j+1,所有字符出现的次数相等。

Code

class Solution {
    public int minimumSubstringsInPartition(String s) {
        int len=s.length();
        int dp[]=new int[len+1];
        Arrays.fill(dp,Integer.MAX_VALUE);
        dp[0]=0;
        for(int i=1;i<=len;i++){
            Map<Character,Integer> map=new HashMap<>();
            int maxVal=0;
            for(int j=i;j>=1;j--){
                map.put(s.charAt(j-1),map.getOrDefault(s.charAt(j-1),0)+1);
                maxVal=Math.max(maxVal,map.get(s.charAt(j-1)));
                if(map.size()*maxVal==i-j+1&&dp[j-1]!=Integer.MAX_VALUE){//是平衡字符串
                dp[i]=Math.min(dp[i],dp[j-1]+1);
                }
            }
        }
        return dp[len];
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/minimum-substring-partition-of-equal-character-frequency/solutions/2896070/fen-ge-zi-fu-pin-lu-xiang-deng-de-zui-sh-v1yo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《上海服饰》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《上海服饰》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《上海服饰》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a;上海世纪出版&#xff08;集团&#xff09;有限公司…

Leetcode 98 验证二叉搜索树 C++实现

Leetcode 98. 验证二叉搜索树 问题&#xff1a;给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身…

【Python入门】第2节 判断语句

&#x1f4d6;第2节 判断语句 ✅布尔类型和比较运算符✅if语句的基本格式✅if else 语句✅if elif else语句✅判断语句的嵌套 ✅布尔类型和比较运算符 布尔&#xff08;bool&#xff09;表达现实生活中的逻辑&#xff0c;即真和假 True表示真 False表示假。 True本质上是一…

代码随想录训练营 Day41打卡 动态规划 part08 121. 买卖股票的最佳时机 122. 买卖股票的最佳时机II 123. 买卖股票的最佳时机III

代码随想录训练营 Day41打卡 动态规划 part08 一、力扣121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计…

【计算机系统架构】从0开始构建一台现代计算机|时序逻辑、主存储器|第3章

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【计算机系统架构】从0开始构建一台现代计算机|二进制、布尔运算和ALU|第2章每日一言&#x1f33c;: 孤独和喧嚣都令人难以忍受。如果一定要忍…

【精选】基于B_S架构的智慧校园系统的设计与实现(全网独一无二,阿龙原创开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

5分钟搞定!最好用的6款写论文专用神器APP软件

在当今学术研究和写作领域&#xff0c;AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿&#xff0c;还能进行内容优化、查重和排版等操作。以下是8款推荐的AI论文写作工具&#xff0c;包括千笔-AIPassPaper&#xff0c;帮助你更…

AOP自定义注解防重

Spring Boot 防重提交注解实现与实战示例 在Web开发中&#xff0c;防止用户重复提交表单是一个常见的需求。本文将详细介绍如何在Spring Boot中通过自定义注解和AOP技术实现防重提交功能&#xff0c;并提供一个完整的示例。 一、背景介绍 重复提交问题通常出现在用户在短时间…

来自OpenAI官网的Function calling介绍与最佳实践

学习如何将大型语言模型连接到外部工具。 介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用&#xff0c;比如为AI助手赋能&#xff0c;或者在你的应用程序与模型之间建立深度集成。 在2024年8月&#xff0c;我们推出了结构化输出功能。当…

8月27日笔记

活动目录的访问 AD Explorer LDAP&#xff08; Lightweight Directory Access Protocol&#xff0c;轻量目录访问协议&#xff09;是一种基于TCP/IP的应用层协议&#xff0c;用于访问和维护分布式目录信息服务。它允许用户在一个网络中查找和管理存储在目录服务中的信息。是在…

SCADA 系统开启车间智能可视化

在当今高速发展的工业时代&#xff0c;车间的高效运作与精准管理至关重要。然而在自动化设备、仪表、传感器等应用的现今&#xff0c;其产生的数据越来越庞大&#xff0c;要想将这些数据充分利用起来&#xff0c;并且形成更易分析的信息&#xff0c;则需要SCADA 系统来进行采集…

参数高效的迁移学习在自然语言处理中的应用

人工智能咨询培训老师叶梓 转载标明出处 迁移学习技术&#xff0c;尤其是针对大型预训练模型的微调&#xff08;fine-tuning&#xff09;&#xff0c;在诸多下游任务中展现出了卓越的性能。然而&#xff0c;当面临众多任务时&#xff0c;传统的微调方法存在参数效率低下的问题…

鸿蒙开发:深入浅出Stage模型(UIAbility组件)

&#x1f680;一、UIAbility组件 &#x1f50e;1.概述 HarmonyOS中的Stage模型是一种基于UIAbility组件的应用程序架构。UIAbility是HarmonyOS系统中用于构建用户界面的基本组件之一。它负责处理应用程序界面的显示和交互。 在Stage模型中&#xff0c;每个应用程序都有一个或…

【Qt笔记】QCommandLinkButton控件详解

目录 引言 一、概述 二、特性与属性 1. 属性 2. 样式 三、基本用法 1. 引入必要的头文件 2. 创建和配置 QCommandLinkButton 3. 布局管理 四、高级用法 1. 自定义绘制 2. 动态内容更新 五、代码解析示例 注意 总结 引言 QCommandLinkButton 是 Qt 框架中 QtWi…

招生简章如何制作为在线版的网址链接?

​随着互联网的高速发展&#xff0c;越来越多的学校和企业选择通过在线方式发布招生简章。这种趋势不仅方便了大量用户&#xff0c;还大大降低了传统纸质招生简章的制造成本。那么&#xff0c;如何制作一份吸引眼球的在线招生简章呢&#xff1f; 1.要制作电子杂志,首先需要选择…

leetcode_001_两数之和解析

两数之和解析 题目: 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。你可以按任意顺序…

【解压即玩】使命de召唤4

《使命de召唤4》 立即下载&#xff1a;【chumenx.com】【解压即玩】使命de召唤4

Leetcode 51. 皇后 回溯 C++实现

Leetcode 51. 皇后 问题&#xff1a;按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不…

Spring框架基础

前言 本文将讲解spring框架的基础内容 Spring 首先,我们需要了解,spring是什么? spring是一个轻量级的IOC和AOP的一站式java开发框架 作用是简化企业级开发 轻量级:框架体积小(核心模块) 其中 IOC: Inversion of Control 控制反转 IOC的作用是可以把创建对象的控制权,反转给s…

学习区块链?看我就够了!

写在前面&#xff0c;本文提到的所有书籍资源&#xff0c;都提供免费下载地址 内含pdf&#xff0c;epub,mobi等格式 一.区块链&#xff1a;定义未来金融与经济新格局 以区块链技术为核心构建的价值互联网 将深刻改变未来的金融与经济格局 文明向前发展&#xff0c;有些成果的…