当前位置: 首页 > article >正文

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

在这里插入图片描述

一、题目描述

小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如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.kler.cn/a/18490.html

相关文章:

  • 高效运维:构建全面监控与自动化管理体系
  • 国标GB28181视频平台EasyCVR私有化部署视频平台对接监控录像机NVR时,录像机“资源不足”是什么原因?
  • 【大数据学习 | HBASE高级】region split机制和策略
  • 微服务容器化部署实践(FontConfiguration.getVersion)
  • linux详解,基本网络枚举
  • macos中安装和设置ninja
  • Adobe考试
  • 【MySQL】索引
  • 字节跳动发放年终奖,远超预期~
  • 将sublime中的自定义代码片段snippet 转为vscode可用的代码片段 (cursor可用)
  • Java笔记_17(异常、File)
  • uboot 启动内核代码分析
  • C++结构体分别在:栈空间、堆空间、静态存储区中初始化
  • 【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-1 原码和移码表示
  • vue概述
  • Go数据机构----栈与队列
  • CANoe以太网配置 Network-Based Access Mode
  • 离散化(算法)
  • 卫星下行链路预算模型(未完待续)
  • JavaScript (七) -- JavaScript 事件(需要了解的事件的运用)
  • C++运算符重载
  • 可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)(补充篇)
  • EMC VNX登录Unisphere错误 certificate has invalid date问题处理
  • DC-8通关详解
  • orin配置系统
  • api数据接口文档_接口文档示例(以1688平台API接口文档实例演示)