2024OD机试卷-掌握的单词个数(java\python\c++)

题目:掌握的单词个数

题目描述

有一个字符串数组Q words 和一个字符串 chars,假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。words 的字符仅由 a-z 英文小写字母组成,例如"abc" chars 由 a-z 英文小写字母和 "?“组成。其中英文”?“表示万能字符,能够在拼写时当作任意一个英文字母Q。例如:”?"可以当作"a"等字母。
注意:每次拼写时,chars 中的每个字母和万能字符都只能使用一次。
输出词汇表 words 中你掌握的所有单词的个数。没有掌握任何单词,则输出0.

输入描述

第一行:输入数组 words 的个数,记作N。
第二行~第N+1行:依次输入数组words的每个字符串元素
第N+2行:输入字符串 chars

输出描述

输出一个整数,表示词汇表 words 中你掌握的单词个数

用例1

输入
4
cat
bt
hat
tree
atach??
输出
3
说明:可以拼写字符串"cat"、"bt"和"hat’

用例2

输入
3
hello
world
cloud
welldonehohneyr
输出
2
说明:可以拼写字符串"hello"和"world"

java实现
import java.util.Scanner;
 
public class Test {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
 
    String[] danci = new String[n];
    for (int i = 0; i < n; i++) {
      danci[i] = sc.next();
    }
 
    String chars = sc.next();
 
    System.out.println(getResult(danci, n, chars));
  }
 
  public static int getResult(String[] danci, int n, String chars) {
    int n = 0;
 
    int[] cnt_chars = charStatistic(chars);
 
    for (int i = 0; i < n; i++) {
      int diff = 0;
 
      int[] cnt_word = charStatistic(danci[i]);
 
      for (int j = 0; j < 128; j++) {
        diff += Math.max(cnt_word[j] - cnt_chars[j], 0);
      }
 
      if (diff <= cnt_chars['?']) {
        n++;
        // System.out.println(danci[i]);
      }
    }
 
    return n;
  }
 
  public static int[] charStatistic(String s) {
    int[] counts = new int[128];
 
    for (int i = 0; i < s.length(); i++) {
      char c = s.charAt(i);
      counts[c] += 1;
    }
 
    return counts;
  }
}
python实现
n = int(input())
 
danci = []
for i in range(n):
    danci.append(input())
 
chars = input()
 
 
def charStatistic(s):
    counts = [0] * 128
 
    for c in s:
        counts[ord(c)] += 1
 
    return counts
 
 
def getResult():
    n = 0
 
    cnt_chars = charStatistic(chars)
 
    for word in danci:
        diff = 0
        cnt_word = charStatistic(word)
        for j in range(128):
            diff += max(cnt_word[j] - cnt_chars[j], 0)
        if diff <= cnt_chars[ord('?')]:
            n += 1
            # print(word)
 
    return n
 
print(getResult())
c++实现
#include <bits/stdc++.h>
 
int test(vector<string> &danci, string &chars) {
    int ans = 0;
 
    int cnt_chars[128] = {0};
    for (const auto &c: chars) {
        cnt_chars[c]++;
    }
 
    for (const auto &word: danci) {
        int n = 0;
 
        int cnt_word[128] = {0};
        for (const auto &c: word) {
            cnt_word[c]++;
        }
 
        for (int j = 0; j < 128; j++) {

            n += max(cnt_word[j] - cnt_chars[j], 0);
        }
 
        if (n <= cnt_chars['?']) {
            ans++;
        }
    }
 
    return ans;
}
 
int main() {
    int n;
    cin >> n;
 
    vector<string> danci;
    for (int i = 0; i < n; i++) {
        string word;
        cin >> word;
 
        danci.emplace_back(word);
    }
 
    string chars;
    cin >> chars;
 
    cout << test(danci, chars) << endl;
 
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑马程序员C++学习总结【进阶篇】

本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 黑马程序员C学习总结【基础篇】 黑马程序员C学习总结【核心篇】 黑马程序员C学习总结【进阶篇】 黑马程序员C学习总结【进阶篇】 一、模板1.函数模板&#xff08;1&#xff09;函数模板2种使用方式&a…

重学java 25.面向对象 权限修饰符、final关键字、代码块

别让平淡生活&#xff0c;耗尽你所有的向往 —— 24.4.27 重点概述 01.知道final修饰成员之后特点 02.会使用静态代码块以及知道静态代码块的使用场景 03.会使用匿名内部类 一、权限修饰符 1.概述 在Java中提供了四种访问权限&#xff0c;使用不同的访问权限修饰符修饰时&#…

为什么 Facebook 不使用 Git?

在编程的世界里&#xff0c;Git 就像水一样常见&#xff0c;以至于我们认为它是创建和管理代码更改的唯一可行的工具。 前 Facebook 员工&#xff0c;2024 年 首先&#xff0c;我为什么关心&#xff1f; 我致力于构建 Graphite&#xff0c;它从根本上受到 Facebook 内部工具的…

第十五届蓝桥杯省赛第二场C/C++B组E题【遗迹】题解

解题思路 错解 贪心&#xff1a;每次都移动至当前最近的对应方块上。 反例&#xff1a; s s s abxac t t t abac 贪心结果&#xff08;下标&#xff09; 0 → 1 → 0 → 4 0 \rightarrow 1 \rightarrow 0 \rightarrow 4 0→1→0→4&#xff0c;答案为 5 5 5。 正确结…

【MRI重建】基于径向采样的GRASP重建实现(matlab)

关于 对比增强MRI和弥散MRI成像,对于时间分辨率要求都比较高,为了捕获高时间空间分辨率,这里使用GRASP方法,重建radial径向采样的MR数据。使用的稀疏正则项为 temporal total variation。 相关文章 https://onlinelibrary.wiley.com/doi/10.1002/mrm.24980 https://onl…

前端学习笔记3

列表、表格与表单​ 列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能更快捷地获得相应的信息。 3.0 代码访问地址 https://gitee.com/qiangge95243611/java118/tree/master/web/day03 3.1 列表 ​ 列表大致可以分为3类…

mac资源库的东西可以删除吗?提升Mac运行速度秘籍 Mac实用软件

很多小伙伴在使用mac电脑处理工作的时候&#xff0c;就会很疑惑&#xff0c;电脑的运行速度怎么越来越慢&#xff0c;就想着通过删除mac资源库的东西&#xff0c;那么mac资源库的东西可以删除吗&#xff1f;删除了会不会造成电脑故障呢&#xff1f; 首先&#xff0c;mac资源库…

沉浸式推理乐趣:体验线上剧本杀小程序的魅力

在这个信息爆炸的时代&#xff0c;人们的娱乐方式也在不断地推陈出新。其中&#xff0c;线上剧本杀小程序以其独特的沉浸式推理乐趣&#xff0c;成为了许多人的新宠。它不仅让我们在闲暇之余享受到了推理的快乐&#xff0c;更让我们在虚拟的世界里感受到了人性的复杂与多彩。 线…

【hackmyvm】 Quick2靶机

渗透流程 渗透开始1.IP地址 获取2.端口扫描3.任意文件读取4.扫描目录5.总结信息6.漏洞扫描7.php_filter_chain_generator.py使用8.提权 渗透开始 1.IP地址 获取 ┌─[✗]─[userparrot]─[~] └──╼ $fping -ag 192.168.9.0/24 2>/dev/null 192.168.9.124 本机 192.1…

base64格式图片直接显示

<img :src"data:image/png;base64,url"/>

阿斯达年代记游戏下载教程 阿斯达年代记下载教程

《阿斯达年代记&#xff1a;三强争霸》作为一款气势恢宏的MMORPG大作&#xff0c;是Netmarble与STUDIO DRAGON强强联合的巅峰创作&#xff0c;定于4月24日迎来全球玩家热切期待的公测。游戏剧情围绕阿斯达大陆的王权争夺战展开&#xff0c;三大派系——阿斯达联邦、亚高联盟及边…

“PowerInfer:消费级GPU上的高效大语言模型推理引擎“

PowerInfer是由上海交通大学IPADS实验室开发的一个高效大语言模型&#xff08;LLM&#xff09;推理引擎&#xff0c;专为个人电脑&#xff08;PC&#xff09;上的消费者级GPU设计。它通过利用LLM推理中的高局部性&#xff0c;实现了快速且资源消耗低的模型推理&#xff0c;这一…

windows如何安装MySQL(详)

MySQL在Windows上的安装和配置 官网&#xff1a;www.mysql.com 下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) window系统 安装包&#xff08;Windows (x86, 64-bit), MSI Installer&#xff09; 压缩包&#xff08;Windows (x86, 64…

Java后端利用百度地图全球逆地理编码,获取地址

声明&#xff1a;本人是在实习项目的时候遇到的问题 一.使用Api分为四步骤全球逆地理编码 rgc 反geo检索 | 百度地图API SDK 步骤1,2自行完成 接下来去获取AK 二.申请AK 登录百度账号 点击创建应用&#xff0c;选择自己想用的服务&#xff0c;我只单选了逆地理编码&#xff…

目标检测的mAP、PR指标含义

基本概念 什么是一个任务的度量标准。对于目标检测任务来说&#xff0c;它的首要目标是确定目标的位置并判别出目标类别。这里已医学图像为例&#xff0c;我们需要计算出血液红细胞&#xff08;RBC&#xff09;、白细胞&#xff08;WBC&#xff09;和血小板的数量。为了实现这一…

表格的单元格合并和表头的合并——vxe-table

vxe-table的官网&#xff1a;https://vxetable.cn/#/table/advanced/mergeCell在你的项目中下载安装完成后&#xff0c;先在main.js文件中引入&#xff1a; import VXETable from vxe-table import vxe-table/lib/style.css Vue.use(VXETable)一、单元格合并 效果图&#xff…

时间序列预测:基于PyTorch框架的循环神经网络(RNN)实现销量预测

之前随手一写&#xff0c;没想到做预测的同学还挺多&#xff0c;但是之前那个效果并不好&#xff0c;于是在之前的基础上重新修改完善&#xff0c;到了现在这一步才感觉预测算是初步能应用。 上文地址&#xff1a;LSTM模型预测时间序列&#xff1a;根据历史销量数据预测商品未…

开源代码分享(24)-考虑柔性负荷的综合能源系统低碳经济优化调度

参考文献&#xff1a; [1]薛开阳,楚瀛,凌梓,等.考虑柔性负荷的综合能源系统低碳经济优化调度[J].可再生能源, 2019, 37(08): 1206-1213. [2]刘蓉晖,李子林,杨秀,等.考虑用户侧柔性负荷的社区综合能源系统日前优化调度[J].太阳能学报, 2019, 40(10):2842-2850. 1.基本原理 基…

智慧药房系统源码解析:开发高效医保购药小程序教学

今天&#xff0c;小编将为大家讲解智慧药房系统的源码结构及其开发过程&#xff0c;旨在为开发者提供一份高效、可靠的指南。 一、系统架构概述 智慧药房系统由前端和后端两部分组成。医保购药小程序则是智慧药房系统的一个重要应用场景&#xff0c;其功能主要包括药品浏览、医…

学浪app视频下载方法,让你随时随地观看

学浪app客户端现在越来越难&#xff0c;不但禁止了录屏软件&#xff0c;而且连抓包都禁止了&#xff0c;其实学浪的难度很高&#xff0c;我只是很幸运&#xff0c;找到了网页进入学浪的方法&#xff0c;但是我知道这个方法不稳定&#xff0c;所以就做成了软件&#xff0c;大家直…