华为OD机试 - 英文输入法(Java 2023 B卷 100分)

news/2024/7/20 19:43:18 标签: 华为od, java, 开发语言

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

一、题目描述

主管期望你来实现英文输入法单词联想功能。

需求如下:

依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。

注意:

  • 英文单词联想时,区分大小写
  • 缩略形式如”don’t”,判定为两个单词,”don”和”t”
  • 输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号

二、输入描述

输入为两行。

  1. 首行输入一段由英文单词word和标点符号组成的语句str;
  2. 接下来一行为一个英文单词前缀pre。

0 < word.length() <= 20
0 < str.length <= 10000
0 < pre <= 20

三、输出描述

输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割

输入输出说明
I love you
He
He从用户已输入英文语句”I love you”中提炼出“I”、“love”、“you”三个单词,接下来用户输入“He”,\n\n从已输入信息中无法联想到任何符合要求的单词,因此输出用户输入的单词前缀。
The furthest distance in the world, Is not between life and death, But when I stand in front of you, Yet you don’t know that I love you.
f
front furthest从用户已输入英文语句”The furthestdistance in the world, Is not between life and death, But when I stand in frontof you, Yet you dont know that I love you.”中提炼出的单词,符合“f”作为前缀的,有“furthest”和“front”,按字典序排序并在单词间添加空格后输出,结果为“front furthest”。

四、解题思路

根据题意描述来就可以了,属于送分题。

五、Java算法源码

java">package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line1 = scanner.nextLine();
        String line2 = scanner.nextLine();

        List<String> list = new ArrayList<>();
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < line1.length(); i++) {
            char c = line1.charAt(i);
            if (!((c <= 'z' && c >= 'a') || (c <= 'Z' && c >= 'A'))) {
                if (builder.length() > 0) {
                    list.add(builder.toString());
                    builder.setLength(0);
                }
                continue;
            }

            if (c == ' ') {
                if (builder.length() > 0) {
                    list.add(builder.toString());
                    builder.setLength(0);
                }
                continue;
            }

            if (c == '\'') {
                if (builder.length() > 0) {
                    list.add(builder.toString());
                    builder.setLength(0);
                }
                continue;
            }

            builder.append(c);
            if (i == line2.length() - 1) {
                if (builder.length() > 0) {
                    list.add(builder.toString());
                    builder.setLength(0);
                }
            }
        }

        boolean flag = false;
        for (String str : list) {
            if (str.startsWith(line2)) {
                flag = true;
                System.out.print(str + " ");
            }
        }

        if (flag == false) {
            System.out.println(line2);
        }
    }
}

六、效果展示

1、输入

I love you
He

2、输出

He

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.niftyadmin.cn/n/5005167.html

相关文章

vue3 + elementplus Cannot read properties of null (reading ‘isCE‘)

使用命令行直接下载的element-plus&#xff0c;使用时会报错。 卸载掉&#xff0c;然后在项目根目录下&#xff0c;使用vue ui安装依赖&#xff0c; 即可使用

Python二进制序列类型(二)array、struct和memoryview

前面一篇学习了bytes和bytearray&#xff0c;这一篇学习其他的两个类型array和memoryview&#xff0c;同时会对struct模块和 codecs进行学习 array 高效的数字数组 此模块定义了一种对象类型&#xff0c;可以紧凑地表示由基本值&#xff08;字符、整数、浮点数&#xff09;组…

计算机网络第三章——数据链路层(中)

数声风笛离亭晚&#xff0c;君向潇湘我向秦 文章目录 ALOHA协议CSMA协议CSMA/CD协议CSMA/CA协议 总线型和星型都是广播式通信&#xff0c;看一下目的地址是否是我&#xff0c;若是我就接受否则就丢弃&#xff0c;总线型就是若是有一个断了则会影响其他的&#xff0c;型型的就是…

Python二进制序列类型(一)bytes与bytearray

Python中有一类特殊的对象称为字节类对象&#xff0c;可在多种二进制数据操作中使用&#xff0c;如图片、音频、视频数据&#xff0c;通过socket套接字发送数据&#xff0c;以及与C语言的API进行数据交互等等。 bytes 只负责以字节序列的形式&#xff08;二进制形式&#xff0…

LabVIEW应用开发——LabVIEW2019保姆级介绍、安装、第一个程序

一、前言 LabVIEW是一种程序开发环境&#xff0c;由美国国家仪器&#xff08;NI&#xff09;公司研制开发&#xff0c;类似于C和BASIC开发环境&#xff0c;但是LabVIEW与其他计算机语言的显著区别是&#xff1a;其他计算机语言都是采用基于文本的语言产生代码&#xff0c;而Lab…

【线上问题】很抱歉,如果没有 JavaScript 支持,将不能正常工作

目录 一、问题说明二、解决方式 一、问题说明 1.修改了nginx的配置 2.postman调用接口正常&#xff0c;浏览器访问接口200&#xff0c;但无数据 3.浏览器访问&#xff0c;nginx没有访问记录&#xff0c;接口请求到不了应用服务 4.原因不祥 二、解决方式 1.清理了浏览器缓存

SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,SQL Server&#xff0c;Redis &#xff0c;Oracle ,Oceanbase 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请加微信号 l…

postman json复杂数据的模拟

先设置路径 然后可以定义下边数据&#xff08;Key value&#xff09; 也可以不定义 看你的情况 [{"mac": "4C-77-66-19-50-65","addressPattern": "98jd","platform": "ios","registrationId": "…