2023华为OD机试真题-分界线(JAVA、Python、C++)

2023-10-27

题目描述:
电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字剪切下来,剪拼成匿名信。
现在有一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。
但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序。
解释:单词'on'允许通过单词'no'进行替代
报纸代表newspaper,  匿名信代表anonymousLetter, 求报纸内容是否可以拼成匿名信。

输入描述:
第一行输入newspaper内容,包括1-N个字符串,用空格分开
第二行输入anonymousLetter内容,包括1-N个字符串,用空格分开
1、newspaper和anonymousLetter的字符串由小写英文字母组成且每个字母只能使用一次
2、newspaper内容中的每个字符串字母顺序可以任意调整,但必须保证字符串的完整性(每个字符串不能有多余字母)
3、1<N<100 , 1<= newspaper.length, anonymousLetter.length <= 104
输出描述:
如果报纸可以拼成匿名信返回ture,否则返回false
补充说明:
 收起
示例1
输入:
ab cd
ab
输出:
true
说明:
示例2
输入:
ab ef
aef
输出:
false
说明:
示例3
输入:
ab bcd ef
cbd fe
输出:
true
说明:
示例4
输入:
ab bcd ef
cd ef
输出:
false
 

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
 
public class Main {
    private static boolean isValid(String[] newsWord, String[] letterWord) {
        HashSet<String> set = new HashSet<>();
        for (int i = 0; i < newsWord.length; i++) {
            char[] wordChars = newsWord[i].toCharArray();
            Arrays.sort(wordChars);
            set.add(String.valueOf(wordChars));
        }
        for (int i = 0; i < letterWord.length; i++) {
            char[] wordChars = letterWord[i].toCharArray();
            Arrays.sort(wordChars);
            if (!set.contains(String.valueOf(wordChars))) return false;
        }
        return true;
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String newspaper = sc.nextLine();
            String anonymousLetter = sc.nextLine();
            String[] newsWord = newspaper.split(" ");
            String[] letterWord = anonymousLetter.split(" ");
            System.out.println(isValid(newsWord,letterWord));
        }
    }
}
import sys
def divine():
    # 读取第一行的n
    b=[]
    for i in range(2):
        # 读取每一行
        line = sys.stdin.readline().strip()
        # 把每一行的数字分隔后转化成int列表
        c=[]
        d=[]
        a = list(map(str, line.split()))
        for j in range(len(a)):
            for k in a[j]:
                c.append(k)
            c.sort()
            d.append(c)
            c=[]
        b.append(d)
    for i in range(len(b[1])):
        if b[1][i] in b[0]:
            b[0].remove(b[1][i])
        else:
            return('false')
    return('true')
print (divine())
#include <iostream>
#include <cstdio>
#include <vector>
#include <math.h>
#include <algorithm>
 
using namespace std;
 
bool isSmaller(const int* a, const int* b) {
    for (int i = 0; i < 26; i++) {
        if (a[i] == b[i])
            continue;
        else
            return (a[i] < b[i]);
    }
    return false;
}
 
bool isEqual(const int* a, const int* b) {
    for (int i = 0; i < 26; i++) {
        if (a[i] == b[i])
            continue;
        else
            return false;
    }
    return true;
}
 
bool find(vector<int*> news, int* value, int len) {
    int begin = 0;
    int end = len;
    int mid;
    while (begin <= end) {
        mid = (begin + end) / 2;
        if (isSmaller(news[mid], value)) {
            begin = mid + 1;
        }
        else
            end = mid - 1;
    }
    if (begin < news.size() && isEqual(news[begin], value))
        return true;
    return false;
}
 
int main() {
    string s;
    int* tmp;
    vector<int*> news;
    while (cin >> s) {
        tmp = new int[26];
        for (int i = 0; i < 26; ++i)
            tmp[i] = 0;
        int slen = s.length();
        for (int i = 0; i < slen; ++i) {
            tmp[s[i] - 'a']++;
        }
        news.push_back(tmp);
        if (cin.get() == '\n')
            break;
    }
 
    sort(news.begin(), news.end(), isSmaller);
 
    vector<int*> anoys;
    while (cin >> s) {
        tmp = new int[26];
        for (int i = 0; i < 26; ++i)
            tmp[i] = 0;
        int slen = s.length();
        for (int i = 0; i < slen; ++i) {
            tmp[s[i] - 'a']++;
        }
        anoys.push_back(tmp);
        if (cin.get() == '\n')
            break;
    }
    int len = anoys.size();
    bool flag = true;
    for (int i = 0; i < len; i++) {
        if (!find(news, anoys[i], news.size())) {
            flag = false;
            break;
        }
    }
    if (flag)
        cout << "true" << endl;
    else
        cout << "false" << endl;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023华为OD机试真题-分界线(JAVA、Python、C++) 的相关文章

  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • 表单.位置不起作用

    我之前问过这个问题 以为我已经解决了 但它仍然不起作用 Form Show 稍微移动表单位置 https stackoverflow com questions 1214014 form show moves form position s
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 如何使用 BeautifulSoup 只抓取可见的网页文本?

    基本上 我想用BeautifulSoup严格抓住可见文字在网页上 例如 这个网页 http www nytimes com 2009 12 21 us 21storm html是我的测试用例 我主要想获取正文 文章 甚至可能到处都有一些选项
  • 一些涉及类析构函数和删除运算符的内存管理问题?

    在阅读了一些教程后 我仍然不清楚 C 中内存管理的一些观点 1 当使用 new 运算符声明的类超出范围时 是否会调用其析构函数并释放内存 是否有必要调用删除运算符来释放类的内存并调用其析构函数 class Test void newTest
  • GAE - Eclipse 中的开发服务器未更新?

    我在 Eclipse 上使用 Google AppEngine 开发服务器 我的本地网页似乎没有更新 直到我在开发服务器上进行了多次重新启动 使用 Eclipse 中的 运行 或 调试 按钮 我究竟做错了什么 基本流程是 更改 java 文
  • 一个对大文件有效的轻量级 XML 解析器?

    我需要解析潜在的巨大 XML 文件 所以我猜这排除了 DOM 解析器 是否有任何优秀的 C 轻量级 SAX 解析器 在占用空间上可与 TinyXML 相媲美 XML的结构非常简单 不需要诸如命名空间和DTD之类的高级东西 只是元素 属性和
  • 无法运行简单的 doclet 程序:包 com.sun.javadoc 不存在

    我正在尝试运行一个简单的 doclet 程序 但无法编译它 javac cp cygdrive c Progra 2 Java jdk1 8 0 65 lib tools jar A java 但它抛出 A java 1 错误 包 com
  • 如何最好地为 Visual Studio 2017 构建的 CMake C++ 项目设置输出目录?

    我使用 Visual Studio 2017 使用 vcxproj 文件构建 C 桌面项目 我喜欢默认行为 其中输出目录是项目下面的子目录 例如 myproj sln myproj vcxproj x64 myproj release my
  • 派生类的聚合初始化

    以下代码无法使用 Visual Studio2017 或在线 GDB 进行编译 我期望它能够编译 因为迭代器只是一个具有类型的类 并且它是从公共继承的 这是不允许的还是在 VS2017 中不起作用 template
  • 何时以及为何使用缓冲输入和输出流? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我读到这些是为了减少磁盘 网络调用开销而使用的 这在写操作的情况下似乎很好 但是进行缓冲读取有什么好处呢 如果您按字节读取文件 则每次都会进
  • 使用 Python PuLP 混合整数规划的时间限制

    我一直在使用PuLP http pythonhosted org PuLP 解决我感兴趣的特定混合整数线性规划 MIP 但是 随着问题规模的增长 PuLP 花费的时间太长 我希望能够运行求解器一段时间 并在需要很长时间的情况下提前终止它 并
  • 即使对于新上下文,OnModelCreating 也仅调用一次

    我有多个相同但内容不同的 SQL Server 表 在编写代码优先 EF6 程序时 我尝试为每个程序重用相同的数据库上下文 并将表名称传递给上下文构造函数 然而 虽然每次都会调用构造函数 但尽管每次都是从 new 创建数据库上下文 但 On
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • 通过 OCI 调用 Oracle 存储过程并使用 C++ 中的 out ref 游标返回结果

    我想使用 OCI 接口从 C 调用 Oracle 存储过程 并使用 out SYS REF CURSOR 作为过程的参数来迭代结果 我是 OCI 新手 所以可能会遗漏一些简单的东西 大部分代码取自这里 我的存储过程是 CREATE OR R
  • 字符串常量之前应有非限定 ID

    我目前正在编写一个 C 应用程序 它与 math h 结合实现了振荡器 我拥有的代码应该可以很好地用于该应用程序 尝试编译目标文件 但是我遇到编译器错误 很可能与语法 等有关 我认为这与命名空间有关 错误 终端输出 User Name Ma
  • PostgreSQL 使用 JPA 和 Hibernate 抛出“列的类型为 jsonb,但表达式的类型为 bytea”

    这是我的实体类 映射到表中postgres 9 4 我正在尝试将元数据存储为jsonb在数据库中输入 Entity Table name room categories TypeDef name jsonb typeClass JsonBi
  • 如何在 SpringDoc OpenAPI 3 中引用文件?

    我有 Spring Boot 项目 我想在其中记录我的 API 这里是正在处理的 Web 服务的示例 ApiResponses value ApiResponse responseCode 200 content Content media
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre
  • “保留供任何使用”是什么意思?

    注意 这是一个c questions tagged c问题 虽然我补充说c questions tagged c 2b 2b如果某些 C 专家可以提供 C 使用与 C 不同的措辞的基本原理或历史原因 在 C 标准库规范中 我们有这个规范文本

随机推荐

  • 日志存储

    文件目录布局 一个分区副本在节点上对应一个log文件夹 同时kafka为了防止文件过大引入了logSegment概念 将log切分成了多个logSegment 相当于将一个大文件切分成多个小文件 logSegment又对应磁盘上多个文件 一
  • [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123084611 目录 一 在后5G时
  • 5G新基建 边缘计算乘风破浪

    2019年6月6日 工信部向中国电信 中国移动 中国联通 中国广电发放5G商用牌照 这意味着中国正式进入5G元年 一年以来 随着基站的建设与用户认知的提升 5G应用如雨后春笋般涌现 而在今年上半年频繁被提及的 新基建 中 5G也将作为通信网
  • Java启动报错记录

    Java启动报错记录 错误现象起源 APPLICATION FAILED TO START Description Parameter 0 of constructor in com xz unity busi question servi
  • string深拷贝的传统与现代写法

    include
  • 运维工程师之-MySQL的故障问题总结

    故障类问题 你在日常工作中遇到过什么故障 你在日常工作中处理过什么故障 你平常工作都干什么活 故障01 mysql时软件版本选择错误 每一个故事的背后都有一个事故 每个故障总结一个故事 软件版本 64位 32位选择错误 故障02 安装故障
  • Java 树结构 TreeNode 表格 工具类

    记录 目录 记录 前言 一 TreeNode 通用树结构使用 1 创建TreeNode树结构基础类 2 创建通用树结构构建类 二 使用步骤 1 通过调用构建类返回树结构 2 测试 总结 前言 本文档基于若依框架编写 项目地址 https g
  • 如何熟练地配置和微调 MacBook Pro 的显示屏幕

    点击右上角 关注 我们 获取更多前沿科技信息 本文共613字 阅读全文约2分钟 关键字 MacBook MacBookPro 苹果系统 Apple 苹果的新款14英寸和16英寸 MacBook Pro 专为专业人士打造 许多的美工或设计师会
  • ChatExcel来了

    chatgpt是一个语言模型 在语言类任务中表现非常好 但是ChatGPT在精准的数据逻辑上表现一般 问chatgpt一些简单的数据处理问题 chatgpt一般还能回答 但chatgpt每次输出的内容有限 日常的数据量至少几百行 这个量级的
  • 应用npm workspace 维护多git仓库的package.json

    1 背景 在大型项目中 随着功能迭代 代码越来越重 需要抽离公用的组件作为子仓库来引用 git submodules 在项目中拥有多个包 每个包的package json较难维护 使用npm workspace可以解决这个问题 2 npm
  • Spring Security OAuth2.0(五)-----OAuth2实现自定义统一认证登录页/自定义授权页/基于mysql存储数据

    本次实例涉及三个项目 核心项目工程unify authorization server 认证授权登录 资源服务器项目unify resource server 测试项目是前面几篇写的项目 这里没有改动直接用来测试实例项目 一 unify a
  • 区块链中的签名怎么签?

    想知道更多区块链技术知识 请百度 链客区块链技术问答社区 链客 有问必答 明星的签名在粉丝的眼中视若无价 生意场上的签名被视为不可抵赖 而在区块链中 数字签名 也是一个独一无二的数值 如今网络环境愈发宽泛 大量的信息通过网络传播留下痕迹 人
  • ACCESS中用SUM()函数的精度问题

    链接来自 https zhidao baidu com question 74046761 html 我在access中使用sum函数时也遇到了该问题 明明数据表中存储的数据是两位小数 通过select value from t table
  • 佐美人--arm32/64/openwrt文件系统移植

    为了让不在OpenWrt项目支持列表中的ARM机器快速使用OpenWrt 可以用替换rootfs的简易方法进行移植 首先 确保你的ARM盒子有能正常使用的Linux系统 并且最好有良好的社区支持 可以去armbian寻找有开源支持的开发板
  • TS泛型用法

    泛型 可以理解为更广泛的类型 也就是说我们在函数 接口 类等中 约束数据类型的时候 可以通过泛型的方式来实现类型的传参 让数据的类型也可以根据传递的类型值来控制 一 函数中的泛型 1 定义泛型函数 基础语法 function 函数名 lt
  • python---之plt.subplot画图详解

    转载 https www cnblogs com nju2014 p 5620776 html Matplotlib 详解图像各个部分 首先一幅Matplotlib的图像组成部分介绍 在matplotlib中 整个图像为一个Figure对象
  • 关于word中插入知网e-study插件问题

    写论文过程中难免会出现word中e study莫名其妙的被禁止 估计是被杀毒软件或启动项什么的优化禁止了 打开word gt word选项 gt 加载项 gt 管理 gt 禁用项目 gt 把e study相关插件删除 在COM 加载项中将
  • Python温习(四)——编程常识与正则

    基础功能 Python中 前面已经创建了变量类型并赋值存在的对象 下次再进行使用的时候 不需要重新再次进行输入 只需要进行输入前两个字母 以Tab键进行历史对象查找后 进行切换回车 1 input和print输入 输出 da input 请
  • 2019-2020-1 1823《程序设计与数据结构》第二、三周作业总结

    作业地址 第二 三周作业总结 https edu cnblogs com campus besti 2019 2020 1 1823 PDDS homework 7585 提交情况如图 忘记提交作业 已在博客分中扣除相应的分数 作业问题 优
  • 2023华为OD机试真题-分界线(JAVA、Python、C++)

    题目描述 电视剧 分界线 里面有一个片段 男主为了向警察透露案件细节 且不暴露自己 于是将报刊上的字剪切下来 剪拼成匿名信 现在有一名举报人 希望借鉴这种手段 使用英文报刊完成举报操作 但为了增加文章的混淆度 只需满足每个单词中字母数量一致