【每日一题Day86】LC2287 重排字符形成目标字符串 | 哈希表

简介: 思路:使用两个哈希表记录两个字符串中字符出现的次数,假设某个字符的在s和target中出现次数分别为a和b ,那么该字母可被重排的次数为⌊ a/ b ⌋ ,target可以被重排的次数为所有字母可被重排的最小值。

重排字符形成目标字符串【LC2287】


You are given two 0-indexed strings s and target. You can take some letters from s and rearrange them to form new strings.


Return the maximum number of copies of target that can be formed by taking letters from s and rearranging them.


加油加油


  • 思路:使用两个哈希表记录两个字符串中字符出现的次数,假设某个字符的在s和target中出现次数分别为a和b ,那么该字母可被重排的次数为⌊ a/ b ⌋ ,target可以被重排的次数为所有字母可被重排的最小值。


  • 实现


class Solution {
    public int rearrangeCharacters(String s, String target) {
        int[] sCount = new int[26];
        int[] tCount = new int[26];
        for (char c : s.toCharArray()){
            sCount[c - 'a']++;
        }
        for (char c : target.toCharArray()){
            tCount[c - 'a']++;
        }
        int res = Integer.MAX_VALUE;
        for (int i = 0; i < 26; i++){
            if (tCount[i] != 0){
                res = Math.min(res, sCount[i] / tCount[i]);                
            }
        }
        return res;
    }
}


。复杂度


  • 时间复杂度:O ( n + m + C ),n、m为字符串长度
  • 空间复杂度:O(C),C为字符集大小,本题中为26
目录
相关文章
|
7月前
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
54 0
【每日一题Day176】LC2404出现最频繁的偶数元素 | 哈希表
|
7月前
【每日一题Day370】LC318最大单词长度乘积 | 哈希表 位运算
【每日一题Day370】LC318最大单词长度乘积 | 哈希表 位运算
53 1
|
7月前
【每日一题Day203】LC1016子串能表示从 1 到 N 数字的二进制串 | 枚举 哈希表
【每日一题Day203】LC1016子串能表示从 1 到 N 数字的二进制串 | 枚举 哈希表
50 2
|
7月前
【每日一题Day172】LC2399检查相同字母间的距离 | 哈希表
【每日一题Day172】LC2399检查相同字母间的距离 | 哈希表
43 0
|
7月前
|
存储
【每日一题Day352】LC1726同积元组 | 哈希表+排列组合
【每日一题Day352】LC1726同积元组 | 哈希表+排列组合
36 0
|
7月前
|
测试技术 索引
【每日一题Day296】LC833字符串中的查找与替换 | 排序+模拟
【每日一题Day296】LC833字符串中的查找与替换 | 排序+模拟
45 0
|
7月前
【每日一题Day317】LC2605从两个数字数组里生成最小数字 | 哈希表
【每日一题Day317】LC2605从两个数字数组里生成最小数字 | 哈希表
42 0
|
7月前
【每日一题Day135】LC1487保证文件名唯一 | 哈希表
【每日一题Day135】LC1487保证文件名唯一 | 哈希表
26 0
|
7月前
|
机器学习/深度学习
【每日一题Day128】LC2357使数组中所有元素都等于零 | 排序+模拟 哈希表
【每日一题Day128】LC2357使数组中所有元素都等于零 | 排序+模拟 哈希表
34 0
|
7月前
【每日一题Day215】LC1090受标签影响的最大值 | 贪心+排序+哈希表
【每日一题Day215】LC1090受标签影响的最大值 | 贪心+排序+哈希表
46 0