Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 6078. 重排字符形成目标字符串

LeetCode 6078. 重排字符形成目标字符串

作者头像
Michael阿明
发布于 2022-05-30 00:12:45
发布于 2022-05-30 00:12:45
27700
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 1:
输入:s = "ilovecodingonleetcode", target = "code"
输出:2
解释:
对于 "code" 的第 1 个副本,选取下标为 4567 的字符。
对于 "code" 的第 2 个副本,选取下标为 17181920 的字符。
形成的字符串分别是 "ecod""code" ,都可以重排为 "code" 。
可以形成最多 2"code" 的副本,所以返回 2 。

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

示例 3:
输入:s = "abbaccaddaeea", target = "aaaaa"
输出:1
解释:
选取下标为 036912 的字符,可以形成 "aaaaa"1 个副本。
可以形成最多 1"aaaaa" 的副本,所以返回 1 。
 
提示:
1 <= s.length <= 100
1 <= target.length <= 10
s 和 target 由小写英文字母组成

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

2. 解题

  • 计数,target 每种字符在 s 中能得到的副本数量的最小值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from collections import Counter
class Solution:
    def rearrangeCharacters(self, s: str, target: str) -> int:
        ct1 = dict(Counter(s))
        ct2 = dict(Counter(target))
        ans = 100000
        for k,v in ct2.items():
            if k not in ct1:
                return 0
            ans = min(ans, ct1[k]//v)
        return ans

40 ms 14.9 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 6009. 使两字符串互为字母异位词的最少步骤数
给你两个字符串 s 和 t 。在一步操作中,你可以给 s 或者 t 追加 任一字符 。
Michael阿明
2022/03/10
4020
LeetCode 567. 字符串的排列(滑动窗口)
1. 题目 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。 换句话说,第一个字符串的排列之一是第二个字符串的子串。 示例1: 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 示例2: 输入: s1= "ab" s2 = "eidboaoo" 输出: False 注意: 输入的字符串只包含小写字母 两个字符串的长度都在 [1, 10,000] 之间 来源:力扣(LeetCode)
Michael阿明
2020/07/13
6170
LeetCode 第 199 场周赛(757/5231,前14.5%)
全国排名: 757 / 5231,14.5%;全球排名: 0 / 1,00.0%
Michael阿明
2021/02/19
4090
LeetCode 1763. 最长的美好子字符串
当一个字符串 s 包含的每一种字母的大写和小写形式 同时 出现在 s 中,就称这个字符串 s 是 美好 字符串。 比方说,"abABB" 是美好字符串,因为 ‘A’ 和 ‘a’ 同时出现了,且 ‘B’ 和 ‘b’ 也同时出现了。 然而,"abA" 不是美好字符串因为 ‘b’ 出现了,而 ‘B’ 没有出现。
Michael阿明
2021/09/07
7460
LeetCode 358. K 距离间隔重排字符串(贪心+优先队列)
给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。
Michael阿明
2021/02/19
2.4K0
LeetCode 2023. 连接后等于目标字符串的字符串对
给你一个 数字 字符串数组 nums 和一个 数字 字符串 target ,请你返回 nums[i] + nums[j] (两个字符串连接)结果等于 target 的下标 (i, j) (需满足 i != j)的数目。
Michael阿明
2022/01/07
6040
LeetCode 第 206 场周赛(733/4491,前16.3%)
全国排名: 733 / 4491,16.3%;全球排名: 2140 / 13291,16.1%
Michael阿明
2021/02/19
3770
LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
双周赛题目比较简单。第一题没仔细看数据范围,暴力超时一次,最后一题卡了一会。继续加油!
Michael阿明
2021/02/19
3830
LeetCode 1684. 统计一致字符串的数目(哈希)
给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。 如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致 字符串。
Michael阿明
2021/02/19
3850
LeetCode 767. 重构字符串(堆)
参考 LeetCode 358. K 距离间隔重排字符串(贪心+优先队列),一模一样,K=2本题
Michael阿明
2021/02/19
5880
LeetCode 1657. 确定两个字符串是否接近
给你两个字符串,word1 和 word2 。 如果 word1 和 word2 接近 ,就返回 true ;否则,返回 false 。
Michael阿明
2021/02/19
5870
LeetCode 5995. 字符串分组(状态压缩+位运算+图的遍历)
给你一个下标从 0 开始的字符串数组 words 。 每个字符串都只包含 小写英文字母 。words 中任意一个子串中,每个字母都至多只出现一次。
Michael阿明
2022/03/10
5480
LeetCode 2207. 字符串中最多数目的子字符串(前缀和)
给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。
Michael阿明
2022/11/27
2970
LeetCode 2182. 构造限制重复的字符串(贪心、map)
给你一个字符串 s 和一个整数 repeatLimit ,用 s 中的字符构造一个新字符串 repeatLimitedString ,使任何字母 连续 出现的次数都不超过 repeatLimit 次。你不必使用 s 中的全部字符。
Michael阿明
2022/03/10
3030
2025-04-22:形成目标字符串需要的最少字符串数Ⅰ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
2025-04-22:形成目标字符串需要的最少字符串数Ⅰ。用go语言,给定一个字符串数组 words 和一个目标字符串 target。
福大大架构师每日一题
2025/04/22
1360
2025-04-22:形成目标字符串需要的最少字符串数Ⅰ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
2025-04-23:形成目标字符串需要的最少字符串数Ⅱ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
2025-04-23:形成目标字符串需要的最少字符串数Ⅱ。用go语言,给定一个字符串数组 words 和一个目标字符串 target。
福大大架构师每日一题
2025/04/23
940
2025-04-23:形成目标字符串需要的最少字符串数Ⅱ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
2025-05-15:统计能获胜的出招序列数。用go语言,给定一个目标字符串 target,Alice 使用一个特殊键盘输入该字
2025-05-15:统计能获胜的出招序列数。用go语言,给定一个目标字符串 target,Alice 使用一个特殊键盘输入该字符串。这个键盘有两个按键:
福大大架构师每日一题
2025/05/15
680
2025-05-15:统计能获胜的出招序列数。用go语言,给定一个目标字符串 target,Alice 使用一个特殊键盘输入该字
LeetCode 992. K 个不同整数的子数组(双指针)
给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。
Michael阿明
2021/09/07
7190
LeetCode 1835. 所有数对按位与结果的异或和(位运算 (a&b)^(a&c) = a&(b^c) )
列表的 异或和(XOR sum)指对所有元素进行按位 XOR 运算的结果。 如果列表中仅有一个元素,那么其 异或和 就等于该元素。
Michael阿明
2021/09/06
8050
LeetCode 616. 给字符串添加加粗标签(Trie树)
给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 <b> 和 </b> 。 如果两个子串有重叠部分,你需要把它们一起用一个闭合标签包围起来。 同理,如果两个子字符串连续被加粗,那么你也需要把它们合起来用一个加粗标签包围。
Michael阿明
2021/02/19
1.3K0
推荐阅读
LeetCode 6009. 使两字符串互为字母异位词的最少步骤数
4020
LeetCode 567. 字符串的排列(滑动窗口)
6170
LeetCode 第 199 场周赛(757/5231,前14.5%)
4090
LeetCode 1763. 最长的美好子字符串
7460
LeetCode 358. K 距离间隔重排字符串(贪心+优先队列)
2.4K0
LeetCode 2023. 连接后等于目标字符串的字符串对
6040
LeetCode 第 206 场周赛(733/4491,前16.3%)
3770
LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
3830
LeetCode 1684. 统计一致字符串的数目(哈希)
3850
LeetCode 767. 重构字符串(堆)
5880
LeetCode 1657. 确定两个字符串是否接近
5870
LeetCode 5995. 字符串分组(状态压缩+位运算+图的遍历)
5480
LeetCode 2207. 字符串中最多数目的子字符串(前缀和)
2970
LeetCode 2182. 构造限制重复的字符串(贪心、map)
3030
2025-04-22:形成目标字符串需要的最少字符串数Ⅰ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
1360
2025-04-23:形成目标字符串需要的最少字符串数Ⅱ。用go语言,给定一个字符串数组 words 和一个目标字符串 targ
940
2025-05-15:统计能获胜的出招序列数。用go语言,给定一个目标字符串 target,Alice 使用一个特殊键盘输入该字
680
LeetCode 992. K 个不同整数的子数组(双指针)
7190
LeetCode 1835. 所有数对按位与结果的异或和(位运算 (a&b)^(a&c) = a&(b^c) )
8050
LeetCode 616. 给字符串添加加粗标签(Trie树)
1.3K0
相关推荐
LeetCode 6009. 使两字符串互为字母异位词的最少步骤数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验