​力扣解法汇总2287. 重排字符形成目标字符串

news/2023/12/9 15:38:20

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你两个下标从 0 开始的字符串 s 和 target 。你可以从 s 取出一些字符并将其重排,得到若干新的字符串。

从 s 中取出字符并重新排列,返回可以形成 target 的 最大 副本数。

示例 1:

输入:s = "ilovecodingonleetcode", target = "code"
输出:2
解释:
对于 "code" 的第 1 个副本,选取下标为 4 、5 、6 和 7 的字符。
对于 "code" 的第 2 个副本,选取下标为 17 、18 、19 和 20 的字符。
形成的字符串分别是 "ecod" 和 "code" ,都可以重排为 "code" 。
可以形成最多 2 个 "code" 的副本,所以返回 2 。

示例 2:

输入:s = "abcba", target = "abc"
输出:1
解释:
选取下标为 0 、1 和 2 的字符,可以形成 "abc" 的 1 个副本。 
可以形成最多 1 个 "abc" 的副本,所以返回 1 。
注意,尽管下标 3 和 4 分别有额外的 'a' 和 'b' ,但不能重用下标 2 处的 'c' ,所以无法形成 "abc" 的第 2 个副本。

示例 3:

输入:s = "abbaccaddaeea", target = "aaaaa"
输出:1
解释:
选取下标为 0 、3 、6 、9 和 12 的字符,可以形成 "aaaaa" 的 1 个副本。
可以形成最多 1 个 "aaaaa" 的副本,所以返回 1 。

提示:

  • 1 <= s.length <= 100
  • 1 <= target.length <= 10
  • s 和 target 由小写英文字母组成

解题思路:

* 解题思路:
* 分别就出s和target中每个字符出现的次数。
* 然后遍历target的每个字符,找出其在target中出现的次数和s中出现的次数,用后者除以前者得到i,求i的最小值。

代码:

public class Solution2287 {public int rearrangeCharacters(String s, String target) {TreeMap<Character, Integer> treeMap = new TreeMap<>();int[] nums = new int[26];char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {nums[chars[i] - 'a']++;}char[] chars1 = target.toCharArray();for (int i = 0; i < chars1.length; i++) {char c = chars1[i];Integer num = treeMap.getOrDefault(c, 0);treeMap.put(c, num + 1);}int min = Integer.MAX_VALUE;for (char key : treeMap.keySet()) {int i = nums[key - 'a'] / treeMap.get(key);min = Math.min(min, i);}return min;}
}


http://www.ppmy.cn/news/11736.html

相关文章

【Nacos】Nacos配置中心的使用与SpringCloud整合

在微服务架构中&#xff0c;当系统从一个单体应用&#xff0c;被拆分成分布式系统上一个个服务节点后&#xff0c;配置文件也必须跟着迁移&#xff08;分割&#xff09;&#xff0c;这样配置就分散了&#xff0c;不仅如此&#xff0c;分散中还包含着冗余。配置中心将配置从各应…

70.语义分割和数据集

在 之前讨论的目标检测问题中&#xff0c;我们一直使用方形边界框来标注和预测图像中的目标。 本节将探讨语义分割&#xff08;semantic segmentation&#xff09;问题&#xff0c;它重点关注于如何将图像分割成属于不同语义类别的区域。 与目标检测不同&#xff0c;语义分割可…

【Git 从入门到精通】Git中常用的指令(含使用Git维护一个项目的完整操作)

文章目录一、使用git维护一个项目完整操作1.设置用户名与邮箱2.初始化项目中的Git3.使用Git追踪项目中的文件4.提交一次代码5.后期项目的更新与维护附录、常用命令一览表一、使用git维护一个项目完整操作 1.设置用户名与邮箱 注意:这个设置的并不是将代码提交到github或者gite…

磨金石教育摄影技能干货分享|摄影师镜头下生活的色彩

在生活中也有很多亮丽的色彩&#xff0c;生活在我们看起来是平凡的&#xff0c;但其实每个地方每个人都会有不同的风景。不同的文化&#xff0c;不同的地域&#xff0c;这些都足以构造出不同的色彩。下面就让我们跟随镜头看看世界各地人民多姿多彩的生活。1 生活的色彩这是西孟…

1576_AURIX_TC275_MTU控制与状态寄存器

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 在这一页之前&#xff0c;连续有好几个寄存器都是预留的&#xff0c;因此可以直接跳过。访问使能寄存器的功能&#xff0c;从描述看其实是非常熟悉的&#xff0c;因为这个描述的模板可以从…

前端号外—2022年明星项目居然是它,Node.js危已?

导读 | 2022年是艰难的一年&#xff0c;不仅有互联网的寒冬、还有新冠疫情的洗礼。但是似乎这一切都阻挡不了JavaScript的内卷&#xff0c;一年不长不短的时间中&#xff0c;JavaScript从创新、性能、功能等多维度深度进化&#xff0c;给前端带来了诸多惊喜。本文基于github上流…

用HTML写一个2023跨年动画代码(烟花+自定义文字+背景音乐+雪花+倒计时)

*2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ 文章目录一、前言二、跨年烟花三、效果展示五、HTML源码一、前言 时光荏苒&#xff0c;白驹过隙。 2022这一年又在忙碌中度过了&#xff0c;过去的一年&#xff0c;我们同努力&#xff0c;我们共欢笑&#xff0c;…

STM32RTC外设详解

目录一.RTC 实时时钟简介1.RTC时钟来源2.RTC主要特性二.RTC 外设功能框图1.RTC功能框图剖析2.使能对后备寄存器和RTC的访问3.复位过程4.读RTC寄存器5.配置RTC寄存器三.实现一个简易时钟1.实验目的2.实验原理3.实验源码4.效果演示一.RTC 实时时钟简介 实时时钟是一个独立的定时…

C语言-自定义类型-枚举和联合(11.3)

目录 思维导图&#xff1a; 1.枚举 1.1 枚举类型的定义 1.2 枚举的优点 1.3 枚举的使用 2. 联合&#xff08;共用体&#xff09; 2.1 联合类型的定义 2.2 联合的特点 2.3 联合大小的计算 写在最后&#xff1a; 思维导图&#xff1a; 1.枚举 1.1 枚举类型的定义 例&…

蓝桥杯省赛习题练习(二)

题目来源&#xff1a;2020年真题题集&#xff08;B组&#xff09; 注&#xff1a;代码都是自己写的&#xff0c;不是参考答案&#xff01; 目录1. 门牌制作运行结果2. 既约分数运行结果3. 蛇形填数运行结果4. 跑步锻炼运行结果5. 7段码6. 成绩统计运行结果7. 回文日期运行结果1…

【OpenAI】基于 Gym-CarRacing 的自动驾驶项目 | 车道检测功能的实现 | 边缘检测与分配 | 样条拟合

限时开放&#xff0c;猛戳订阅&#xff01; &#x1f449; 《一起玩蛇》&#x1f40d; &#x1f4ad; 写在前面&#xff1a; 本篇是关于多伦多大学自动驾驶专业项目的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D…

干货 | 涉疫数据的安全应用方案

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分&#xff1a;涉疫数据分类及问题剖析一、涉疫数据分类我们以新冠肺炎疫情为例&#xff0c;构建数据图谱&#xff0c;将涉疫数据分为三个大类&#xff0c;八个小类&#xff0c;共分为50项…

Linux实用命令

进程相关当程序运行在系统上时&#xff0c;我们称之为进程&#xff08;process&#xff09;。想监测这些进程&#xff0c;需要熟悉 ps/top 等命令的用法。ps 命令好比工具中的瑞士军刀&#xff0c;它能输出运行在系统上的所有程序的许多信息。而 top 可以监控当前各个进程的运行…

vue报错汇总

项目场景&#xff1a; 使用vue报错汇总。 1、项目启动不报错也不成功 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 项目启动时&#xff0c;一直启动不成功&#xff0c;末句提示 98% emitting Copyplugin… 原因分析&#xff1a; 最有可能是因为require或者import了…

JAVA01_11学习总结(MyBatis-优化)

今日内容 1. MyBatis日志 MyBatis日志日志是我们纠察改错的有力工具1)导入日志的jar包--使用log4j2)配置日志的核心配置文件3)将日志输出并查看 2. 不适用MyBatis自带的连接池,使用德鲁伊 MyBatis的连接池来源-PooledDataSourceFactory是MyBatis自带的数据源工厂-无参构造,…

Tomcat 性能优化建议

修改Tomcat Connector运行模式为apr Tomcat Connector有三种运行模式&#xff1a; bio&#xff1a;阻塞IO bio是三种运行模式中性能最低第一种。 nio&#xff1a;是一个基于缓冲区&#xff0c;并能提供非阻塞I/O操作的JAVA API 因此NIO也成为非阻塞I/O&#xff0c;比bio拥有更…

高等数学(第七版)同济大学 习题11-7 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题11-7 函数作图软件&#xff1a;Mathematica 1.试对曲面Σ&#xff1a;zx2y2&#xff0c;x2y2≤1&#xff0c;Py2&#xff0c;Qx&#xff0c;Rz2验证斯托克斯公式.\begin{aligned}&1. \ 试对曲面\Sigma&#xff1a;zx^…

Makefile编译选项:CFLAGS、LDFLAGS、LIBS

目录 一、CFLAGS 二、LDFLAGS 三、LIBS 四、参考资料 前言 本文只涉及cflags、ldflags、libs&#xff0c;关于makefile文件非常建议看看大神写的系列博客《跟我一起写Makefile》: 跟我一起写 Makefile&#xff08;一&#xff09;_haoel的博客-CSDN博客 一、CFLAGS 指定…

少儿Python每日一题(22):杨辉三角

原题解答 本次的题目如下所示: 杨辉三角形又称Pascal三角形,它的第i+1i+1行是的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入: 输入包含一个数n。 输出…

Java学习之单例设计模式

目录 设计模式 单例模式 一、饿汉式 二、懒汉式 三、饿汉式VS懒汉式 总结 设计模式 1.静态方法和属性的经典使用 2.设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式。就像是经典的棋谱&#xff0c;不同的棋局&#xff0c;我们用…
最新文章