力扣 2287. 重排字符形成目标字符串

news2024/11/28 22:38:41

题目

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

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

示例

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rearrange-characters-to-make-target-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:计数

Java实现
class Solution {
    public int rearrangeCharacters(String s, String target) {
        int res = Integer.MAX_VALUE;
        int[] cnt = new int[26];
        int[] flag = new int[26];
        for (char c : s.toCharArray()) cnt[c - 'a']++;
        for (char c : target.toCharArray()) flag[c - 'a']++;

        for (char c : target.toCharArray()) {
            res = Math.min(res, cnt[c - 'a'] / flag[c - 'a']);
        }
        return res;
    }
}

在这里插入图片描述

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

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

相关文章

人工智能入门基础概念—教你正确打开人工智能世界的大门

一、机器学习 1.1机器学习概述 机器学习简介 机器学习,通俗地讲就是让机器拥有学习的能力,从而改善系统自身的性能。 这里的“学习”指的是从数据中学习,从数据中产生模型的算法,即学习算法。有了学习算法,只要把经验…

力扣(131.93)补9.21

131.分割回文串 又是不会做的一题呢。 代码看起来不难&#xff0c;但想出代码还是很难得。 class Solution { public List<List<String>> partition(String s) { List<List<String>> ansnew ArrayList<>(); List<String> listnew ArrayLis…

Python学习笔记-PyQt6对话框

对话框是界面编程中重要的窗体&#xff0c;一般用于提示或者一些其他特定操作。一、使用QDialog显示通用消息框直接使用QDialog类&#xff0c;可以及通过对话框进行通用对话框显示&#xff0c;亦可以通过自定义设置自己需要的对话框。# _*_ coding:utf-8 _*_import sysfrom PyQ…

自动驾驶专题介绍 ———— 超声波雷达

文章目录介绍工作原理特点常见参数介绍 在汽车碰撞事故中&#xff0c;有大约15%的事故是因为倒车时汽车的后视能力不足引起的&#xff0c;因为增加汽车的后视能力的超声波雷达的研究成为了当下的热点之一。安全避免碰撞的前提是快速准确的测量障碍物于汽车之间的距离。超声波雷…

小白必看!用JMeter+ANT进行接口自动化测试,并生成HTML测试报告

小伙伴们&#xff0c;用python做接口自动化是不是写代码比较繁琐&#xff0c;而且没有python代码基础的小伙伴根本无从下手对吧&#xff01;今天我们来学习一下如何使用JMeter工具实现接口自动化测试。 01 安装 1、安装JDK&#xff0c;配置java环境变量&#xff08;安装过程略…

Win11玩不了红警怎么办?Win11玩不了红警解决方法分享

Win11玩不了红警怎么办&#xff1f;红警是非常耐玩的一款电脑游戏&#xff0c;有用户在电脑上安装这款游戏的时候&#xff0c;发现游戏无法正常的运行&#xff0c;那么这个情况是什么原因导致的呢&#xff1f;接下来我们就一起来看看Win11玩不了红警解决方法分享吧。 Win11玩不…

Java基础学习笔记(十六)—— IO流

IO流1 IO流1.1 IO流概述1.2 IO流的分类1.3 IO流的使用场景2 File类2.1 File类概述2.2 File类构造方法2.3 File类常用方法2.4 File类案例3 字节流3.1 字节流写数据3.2 字节流写数据的三种方式3.3 字节流写数据加异常处理3.4 字节流读数据3.5 字节流复制文件4 字节缓冲流4.1 字节…

String,StringBuilder,StringBuffer源码分析

声明&#xff1a;本文使用JDK1.8 在Java中&#xff0c;对于字符串的操作有这三种&#xff1a;String、StringBuilder、StringBuffer。这三者的效率是&#xff1a;StringBuilder > StringBuffer > String。 String a "abc"; a a "d"; System.out.…

好看的滤镜怎么调?来看看今日的分享

通常我们会将拍完的照片进行美化操作&#xff0c;那么美化照片的一个重要步骤就是添加滤镜了&#xff0c;但该如何给照片加滤镜&#xff0c;却是很多人不知道的&#xff0c;滤镜可不是随随便便添加就好的&#xff0c;它不仅仅需要匹配我们的照片&#xff0c;还得对添加的滤镜参…

Maix Bit(K210)保姆级入门上手教程---外设基本使用

Maix Bit&#xff08;K210&#xff09;保姆级入门上手教程系列 Maix Bit&#xff08;K210&#xff09;保姆级入门上手教程—环境搭建 这是K210快速上手系列文章&#xff0c;主要内容是&#xff0c;介绍K210的基本外设的使用、通过简单介绍一两个基本的硬件使用来掌握K210的外设…

Elasticsearch连续剧之分词器

目录一、前言二、默认分词器三、IK分词器1.主要算法2.安装IK分词器2.1 关闭es服务2.2 上传ik分词器到虚拟机2.3 解压2.4 启动ES服务2.5 测试分词器效果2.6 IK分词器词典四、拼音分词器1.安装2.测试分词效果五、自定义分词器1.创建自定义分词器2.测试一、前言 ES文档的数据拆分…

如何使用OpenDRIVE

文章目录OpenDRIVE Notes#1 前言#2 OpenDRIVE结构#2.1 Road#2.1.1 道路属性#2.1.2 道路联接#2.1.3 参考线#2.2 laneSection#2.3 laneOffset#2.4 junction#2.4.1 路口的联接#2.5 poly3(三次多项式)#3 解析#3.1 数据结构#3.1.1 ID#3.1.2 Point#4 构建topo#5 邻接点#6 路径规划#7 …

计算机图形学实习教程之基本图形的生成(二维图形裁剪Cohen-Sutherland算法+图形平移算法+图形旋转算法),利用C#实现,附源码

环境&#xff1a;Win10Visual Studio 2022 Community 在本次实验中需要用到第一篇文章实验内容的代码及环境&#xff0c;详情请见&#xff1a;传送门 目录 一、实验目的 二、实验步骤 1.Cohen-Sutherland算法 2.平移算法 3.旋转算法 一、实验目的 1.熟练掌握二维图形裁剪…

Java中的包装类

基本数据类型的豪华版---包装类基本数据类型包装类基本数据类型 在我们刚开始学习Java的时候,我们学习的应该就是Java中的八种基本数据类型: byte short int long float double char boolean 当时我们还说过Java是面向对象编程的语言,一切皆对象,但是受到当时知识的限制,我们还…

PHP MySQL 创建数据库

数据库存有一个或多个表。 你需要 CREATE 权限来创建或删除 MySQL 数据库。 使用 MySQLi 和 PDO 创建 MySQL 数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库。 在下面的实例中&#xff0c;创建了一个名为 "myDB" 的数据库&#xff1a; 实例 (MySQLi - 面…

系分 - 案例分析 - 架构设计(Web架构)

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录案例分析 - 系统设计&#xff08;Web架构&#xff09;Web架构知识点单台机器 到 数据库与Web服务器分离应用服务器集群负载均衡负载均衡技术静态与动态算法Session共享机制有状态与无状态持久化技术ORM数据…

22.Isaac教程--使用 Isaac Sight可视化

使用 Isaac Sight可视化 本节介绍如何使用 Isaac Sight 检查导航堆栈&#xff0c;机器人上当前发生的情况。 Sight 使用 Isaac 节点&#xff0c;该节点运行可在设备上连接的 Web 服务。 通过在 Chrome 网络浏览器中导航到 http://localhost:3000 来启动 Isaac Sight。 &#x…

(详解)java:无效的目标发行版: 11

目录 背景 解决方法 1.打开文件下的Project Structure 如下图&#xff1a; 2. 3. 4.完毕 背景 其实出现问题的真正原因是你下载别人的代码&#xff0c;但是别人的JDK属于java11 或者java9,但是你的为java8 或者更低 解决方法 1.打开文件下的Project Structure 如下图&a…

微信小程序——视图与逻辑,页面导航(导航到 tabBar 页面,导航到非 tabBar 页面)

一.页面导航1.什么是页面导航页面导航指的是页面之间的相互跳转。例如&#xff0c;浏览器中实现页面导航的方式有如下两种&#xff1a;a.< a &#xff1e;链接b.location . href2&#xff0e;小程序中实现页面导航的两种方式声明式导航在页面上声明一个&#xff1c; navigat…

nodejs框架koa,egg以及es6一起学

文章目录前言问题关于ES6-Generatoregg中的处理Promisenode的fsWorksheet Object参考文档前言 大家知道&#xff0c;eggjs框架是基于Koa开发的。关于koa&#xff0c;有一张经典的洋葱图&#xff1a; 这张图比较形象地展示了koa对于request和response的处理。每一层都留下扩展…