华为OD机试真题 Java 实现【猜字谜】【2023Q2】

news2024/9/23 3:17:18

在这里插入图片描述

一、题目描述

小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如nesw,玩家需要猜出谈底库中正确的单词。猜中的要求如·
对于某个谜面和谜底单词,满足下面任一条件都表示猜中:

  1. 变换顺序以后一样的,比如通过变换w和e的顺序,“nwes”跟“news”是可以完全对应的;
  2. 字母去重以后是一样的,比如“woood”和“wood”是一样的,它们去重后都是“wod”请你写一个程序帮忙在谜底库中找到正确的谜底。迷面是多个单词,都需要找到对应的谜底,如果找不到的话,返"not found"。

二、输入描述

1、谜面单词列表,以",“分隔
2、谜底库单词列表,以”,"分隔

三、输出描述

匹配到的正确单词列表,以","分隔;

如果找不到,返回"not found"。

补充说明:

  1. 单词的数量N的范围:0<N<1000
  2. 词汇表的数量M的范围:0<M<1000
  3. 单词的长度P的范围:0<P<20
  4. 输入的字符只有小写英文字母,没有其它字符

四、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String values = sc.nextLine();
    String[] arr = values.split(",");
    values = sc.nextLine();
    String[] strs = values.split(",");
    List<byte[]> wordsList = new ArrayList<>();
    List<String> result = new ArrayList<>();
    for (String s : strs) {
        wordsList.add(s.getBytes());
    }

    for (String s : arr) {
        byte[] bytes = s.getBytes();
        int ok = 0;
        for (int i = 0; i < wordsList.size(); i++) {
            byte[] wordChars = wordsList.get(i);
            int has = 1;
            for (byte e : bytes) {
                int found = 0;
                for (byte w : wordChars) {
                    if (w == e) {
                        found = 1;
                        break;
                    }
                }
                if (found == 0) {
                    has = 0;
                    break;
                }
            }
            if (has == 1) {
                if (!result.contains(strs[i])) {
                    result.add(strs[i]);
                    ok = 1;
                    break;
                }
            }
        }
        if (ok == 0) {
            result.add("not found");
        }
    }

    if (result.size() == 0) {
        System.out.print("not found");
    } else {
        for (int i = 0; i < result.size(); i++) {
            if (i == 0)
                System.out.print(result.get(i));
            else
                System.out.print("," + result.get(i));
        }
    }
}

五、效果展示

1、输入

nezha study java
zhanee sdytu jav

2、输出

zhanee sdytu jav

3、说明

nezha == zhanee

study == study

java == jav

在这里插入图片描述


🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

np保存数据为txt或者csv格式

目录 1、基础参数 2、参数详解 2.1、fmt 2.2、delimiter 2.3、newline 2.4、header 1、基础参数 numpy.savetxt(fname,arrry,fmt%.18e,delimiter ,newline\n,header,footer,comments# ,encodingNone,) 2、参数详解 fname:要存入的文件、文件名、或生成器。arrry:要存储…

xxl-Job分布式任务调度 入门

1.概述 1.1 什么是任务调度 我们可以先思考一下业务场景的解决方案&#xff1a; 某电商系统需要在每天上午10点&#xff0c;下午3点&#xff0c;晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的…

C高级第二天

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,const char *argv[]) { int n 0, m 0, MAX 0; int arr[n][m]; printf("请输入矩阵行数、列数>>>"); scanf("%d%d", &n…

【动态规划】线性DP

目录 一&#xff1a;思考方式 二&#xff1a;例题 例题1&#xff1a;数字三角形 例题二&#xff1a;最长上升子序列​​​​​​​ 例题三&#xff1a;最长公共子序列 一&#xff1a;思考方式 线性dp就是一条线上的动态规划 二&#xff1a;例题 例题1&#xff1a;数字三…

Python基础(三)

目录 1、Python的输入函数input() 1、input函数介绍 1.1作用&#xff1a; 1.2返回值类型&#xff1a; 1.3值得存储&#xff1a; 2、input函数的基本使用 2、Python中的运算符 2.1算术运算符 2.1.1标准算术运算符 2.1.2取余运算符(%) 2.1.3幂运算符(**) 2.1.4特殊运…

分布式锁的多种实现方式

1、不使用分布式锁 synchronized (this){int stock Integer.parseInt(Objects.requireNonNull(stringRedisTemplate.opsForValue().get("stock")));if (stock > 0) {int realStock stock - 1;// 更新库存stringRedisTemplate.opsForValue().set("stock&qu…

vi编辑器的三种模式及其对应模式下常用指令

vi是Linux系统的第一个全屏幕交互式编辑工具&#xff0c;在嵌入式的 学习中是一个不可或缺的强大的文本编辑工具。 一、三种模式 命令模式 如何进入命令模式&#xff1a;按esc键 复制&#xff1a;yy nyy(n&#xff1a;行数) 删除(剪切): dd ndd 粘贴&#xff1a;p 撤销&…

【Java】java | 将可运行jar打包成exe可执行文件

一、说明 1、javafx桌面程序&#xff0c;但又不想安装jre环境 2、需要将可执行jar打包成exe 3、使用工具exe4j 二、操作步骤 1、下载exe4j https://exe4j.apponic.com/ 2、安装 说明1&#xff1a; 在d盘建个exe4j的文件夹 说明2&#xff1a; 建个output文件jar&#xff0c;存放…

计算机组成原理——计算机系统的组成

一台完整的计算机包括硬件和软件两部分&#xff0c;另外还有一部分固话的软件成为固件(Frimware)&#xff0c;固件兼具软件和硬件的特性&#xff0c;常见的如个人计算机中的BIOS&#xff0c;BIOS&#xff08;Basic Input/Output System&#xff09;是个人计算机上的一个基本输入…

React 路由

React 的路由跳转需要引用第三方的 React Router npm i react-router-dom5.2.0 React Router 分为 BrowserRouter 和 HashRouter 如果我们的应用有服务器响应 web 的请求&#xff0c;建议使用<BrowserRouter>组件; 如果使用静态文件服务器&#xff0c;建议使用<Hash…

[golang gin框架] 29.Gin 商城项目-用户登录,注册操作

一.用户登录,注册界面展示说明 先看登录,注册界面以及相关流程,再根据流程写代码,一般网站的登录,注册功能都会在一个页面进行操作,还有的是在几个页面进行操作,这里讲解在几个页面进行注册的操作,步骤如下: 登录: 1.点击 登录按钮,进入登录界面 2.在登录界面输入手机号,密码,图…

Linux内核中与“文件系统”相关的数据结构

文件系统相关的数据结构 4.1 file结构体 文件结构体代表一个打开的文件&#xff0c;系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建&#xff0c;并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后&#xff0c;内核释放这…

【Flink】DataStream API使用之源算子(Source)

源算子 创建环境之后&#xff0c;就可以构建数据的业务处理逻辑了&#xff0c;Flink可以从各种来源获取数据&#xff0c;然后构建DataStream进项转换。一般将数据的输入来源称为数据源&#xff08;data source&#xff09;&#xff0c;而读取数据的算子就叫做源算子&#xff08…

【vue3】06-vue的组件化开发-脚手架创建项目

文章目录 Vue的组件化组件化开发注册组件的方式vue全局组件vue局部组件 Vue的开发模式Vue CLI脚手架安装Vue CLI使用Vue CLI Vue的组件化 Vue是一款前端框架&#xff0c;在这个框架中&#xff0c;组件化开发是非常重要的。Vue的组件化就是将一个页面划分为多个独立的、可复用的…

LeetCode5. 最长回文子串

写在前面&#xff1a; 题目链接&#xff1a;LeetCode5. 最长回文子串 编程语言&#xff1a;C 题目难度&#xff1a;中等 一、题目描述 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 示例…

算力256TOPS,典型功耗35W,存算一体芯片杀入智能驾驶

作者 | 张祥威 编辑 | 德新 国产智驾芯片有了新玩家 “最高物理算力256 TOPS&#xff0c;典型功耗35W&#xff0c;基于12nm制程工艺。” 5月10日&#xff0c;后摩智能发布首款基于存算一体架构的智驾芯片——鸿途™H30&#xff0c;并公布上述关键指标。 算力、数据和算法&am…

单例模式的饿汉和懒汉写法(基于C++)

目录 单例模式例程饿汉懒汉 对比函数调用线程安全总结 单例模式 单例模式确保一个类只有一个实例&#xff0c;并提供全局访问点。这样可以避免在系统中出现多个相同的对象&#xff0c;从而提高系统的性能和可维护性。 单例模式的实现包括饿汉和懒汉&#xff0c;下面介绍C中这两…

操作系统基础知识之处理器性能方程指标(包含阿达姆定律、CPI、Clock cycle time等)

计算机设计人员通过持续时间或速率来指代时钟周期的时间。程序的 CPU 时间可以用两种方式表示&#xff1a; CPU 时间程序的 CPU 时钟周期 / 时钟频率 除了执行程序所需的时钟周期数外&#xff0c;我们还可以计算执行的指令数。 如果我们知道时钟周期数和指令数&#xff0c;就…

金融学第二版笔记第一章1.1

第1部分 金融和金融体系 第一章金融学 1.1 一、 对金融学进行界定 1.金融 金融是货币流通、信用活动及与之相关的经济行为的总称。 简言之&#xff0c;就是货币资金的融通。一般是指以银行、证券市场等为中心的货币流通和信用调节活动&#xff0c;包括货币的发行和流通、存…

转置卷积(一) 搞懂转置卷积的计算

搞懂转置卷积的计算 0、参考文档1、转置卷积是什么&#xff1f;1.1 定义1.2 需要注意 2、转置卷积的计算2.1 从最简单的开始2.2 考虑stride2.3 考虑padding2.4 考虑dilation 3 转置卷积的加速 文章首发于https://zhaodongyu-ak47.github.io/Transposed_Convolution/ 最近做了一…