首页 > 其他分享 >2023.6.10 比较字符串最小字母出现频次

2023.6.10 比较字符串最小字母出现频次

时间:2023-06-10 13:14:13浏览次数:34  
标签:10 mut chars 频次 2000 let 2023.6 query Vec

image

首先按照题意把f(str)这个函数实现出来。可以考虑用哈希表+sort来实现。
然后根据题目的数据范围,一个字符串最长为2000,可以知道,\(f(str) \in [1, 2000]\)。
所以可以考虑用前缀和来处理,定义一个长度为2001的数组s,用来作为前缀和数组,\(s[i]\)表示f值小于等于i的字符串个数。
每一次query的答案即为\(s[2000] - s[f(query) + 1]\)。即所有f值大于f(query)的字符串个数。

use std::collections::{BTreeSet, HashMap};

impl Solution 
{
    pub fn num_smaller_by_frequency(queries: Vec<String>, words: Vec<String>) -> Vec<i32> 
    {
        fn f(s: &str) -> i32
        {
            let mut chars: Vec<char> = Vec::new();
            let mut map: HashMap<char, i32> = HashMap::new();
            for c in s.chars()
            {
                chars.push(c);
                map.entry(c).and_modify(|v| *v += 1).or_insert(1);
            }

            chars.sort();
            map[&chars[0]]
        }

        let mut s = vec![0; 2001];
        for word in words { s[f(&word) as usize] += 1; }
        for i in 1..2001_usize { s[i] += s[i - 1]; }

        let mut res: Vec<i32> = Vec::new();
        for query in queries
        {
            let x = f(&query) as usize;
            res.push(s[2000] - s[x]);
        }

        res
    }
}

标签:10,mut,chars,频次,2000,let,2023.6,query,Vec
From: https://www.cnblogs.com/st0rmKR/p/17471125.html

相关文章

  • 【已解决】手机无法投屏到电脑,win 10 无法在此设备上查看受保护内容。
    已准备好让你以无线方式连接。版本:10.0.19041.1023无法在此设备上查看受保护内容。按Ctrl+S打开"设置"解决方法:方法一:关掉公用网络防火墙,简单粗暴打开设置,搜索防火墙关掉公用网络的防火墙方法二:建立连接规则(一劳永逸)依然进入WindowsDefender防火墙在“......
  • 系统架构设计师笔记第10期:访问控制和数字签名
    访问控制技术访问控制是计算机系统中一种重要的安全机制,用于管理和控制用户对系统资源的访问权限。它的主要目标是确保只有经过授权的用户或实体能够访问资源,从而保护系统的安全性和保密性。访问控制技术的原理和主要技术如下:原理: 访问控制的原理基于授权和认证机制。授权指的是系......
  • 【数学荟萃】第10期:考研数学常用泰勒公式汇总
    泰勒公式是考研数学中同学必须掌握的一系列公式,在求极限、解答题的中值定理问题上面大有用武之地。但是它的公式太多太杂,为了方便学生学习,下面总结了这些公式。为了方便排版,这里直接发图片。由于比较匆忙,如存在小错误请批评指正。 需要pdf文件的同学,扫描下面二维码关注公众号【......
  • IXFH4N100Q-ASEMI代理艾赛斯MOS管IXFH4N100Q
    编辑:llIXFH4N100Q-ASEMI代理艾赛斯MOS管IXFH4N100Q型号:IXFH4N100Q品牌:IXYS/艾赛斯封装:TO-247最大漏源电流:4A漏源击穿电压:1000VRDS(ON)Max:3Ω引脚数量:3工作温度:-55℃~150℃沟道类型:N沟道MOS管、高压MOS管IXFH4N100Q特点低栅极电荷和电容-更易于驾驶-更快的切换国际标准包装RDS低(打开)无......
  • IXFH4N100Q-ASEMI代理艾赛斯MOS管IXFH4N100Q
    编辑:llIXFH4N100Q-ASEMI代理艾赛斯MOS管IXFH4N100Q型号:IXFH4N100Q品牌:IXYS/艾赛斯封装:TO-247最大漏源电流:4A漏源击穿电压:1000VRDS(ON)Max:3Ω引脚数量:3工作温度:-55℃~150℃沟道类型:N沟道MOS管、高压MOS管IXFH4N100Q特点低栅极电荷和电容-更易于驾驶-更快的切换国际标......
  • 6-10|pycharm如何远程连接mac电脑
    要在Pycharm上远程连接Mac电脑,可以通过以下步骤进行配置:1.在Mac上打开终端并执行以下命令以启动SSH服务:```sudolaunchctlload-w/System/Library/LaunchDaemons/ssh.plist```该命令会启动SSH服务并开启默认端口22。2.在Pycharm中打开项目,然后依次选择`Too......
  • 华为OD机试题(A&B卷)真题抽中记录文档(更新到 6 月 10 日)
    @目录本篇博客的价值华为OD机试题⭐⭐......
  • 10
    10.WordCount示例编写(一)任务目的理解WordCount示例的业务逻辑掌握MapReduceMap端编程规范理解WordCount示例Map端的自定义业务逻辑的编写任务清单任务1:WordCount的业务逻辑任务2:WordCountMap端程序编写详细任务步骤任务1:WordCount的业务逻辑MapTas......
  • Linux 4.10 将带来深远影响的三项小改变
    Linux的演进永不停歇。LinusTorvalds一直在努力工作,希望能够在新的内核版本当中(4.11)融入更多变化。不过在目前的Linux4.10中,我们同样发现了三组能够有效提升性能并实现多种前所未有功能集的变更。Linux的演进永不停歇。LinusTorvalds一直在努力工作,希望能够在新的内核......
  • windows10安装ubuntu双系统教程
    windows10安装ubuntu双系统教程资料windows10安装ubuntu双系统教程https://blog.csdn.net/Scarlett2025/article/details/119894316https://blog.csdn.net/weixin_37110403/article/details/126814513https://blog.csdn.net/weixin_42697074/article/details/88880185Window......