华为OD机试真题 Java 实现【单词倒序】【2023Q1 100分】,附详细解题思路

news2024/12/23 23:01:13

一、题目描述

输入单行英文句子,里面包含英文字母,空格以及.? 三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。

二、输入描述

输入字符串S,S的长度1≤N≤100。

三、输出描述

输出逆序后的字符串

补充说明:

标点符号左右的空格>=0,单词间空格 >0。

四、解题思路

  1. 读取输入的英文句子;
  2. 初始化结果字符串result和临时字符串temp为空字符串;
  3. 遍历输入句子的每个字符:
    • 如果当前字符是字母,则将其添加到临时字符串temp中;
    • 如果当前字符是空格,则将临时字符串temp反转,并添加到结果字符串result中,同时加上一个空格;
    • 如果当前字符是标点符号,则先将非空的临时字符串temp反转并添加到结果字符串result中,然后将当前标点符号添加到结果字符串result中;
    • 如果遍历结束后,临时字符串temp非空,则将其反转并添加到结果字符串result中;
  4. 输出结果字符串result;

五、Java算法源码

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

    String result = "";
    String temp = "";

    for (int i = 0; i < inputSentence.length(); i++) {
        char current = inputSentence.charAt(i);

        // 如果当前字符是字母,将其添加到 temp 中
        if (Character.isLetter(current)) {
            temp += current;
        } else if (current == ' ') {
            // 将临时字符串反转,然后添加到结果字符串中,并加上空格
            result += reverse(temp) + " ";
            temp = "";
        } else { // 如果当前字符是标点符号
            if (!temp.isEmpty()) {
                // 将临时字符串反转,然后添加到result
                result += reverse(temp);
                temp = "";
            }
            // 将标点符号添加到result中
            result += current;
        }

        if (i == inputSentence.length() - 1 && !temp.isEmpty()) {
            result += reverse(temp);
        }
    }

    System.out.println(result);
}

public static String reverse(String str) {
    String temp = "";
    for (int i = str.length() - 1; i >= 0; i--) {
        temp += str.charAt(i);
    }
    return temp;
}

六、效果展示

1、输入

avajydutscbzn

2、输出

nzbcstudyjava

3、思路

这道题属于白送分,非常简单,没啥思路。

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

🏆本文收录于,华为OD机试2023(Java)

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

在这里插入图片描述

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

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

相关文章

有道云笔记也挺速度,也搞了个AI助手,能抗衡Notion AI?

前言 小编平时做技术笔记的时候&#xff0c;经常使用到的软件就是有道云笔记&#xff0c;最近无意间发现&#xff0c;笔记编写的页面中&#xff0c;竟然集成了AI助手&#xff01;网易有道可真是低调&#xff01;毕竟最近AI圈大火&#xff0c;竟然没有蹭一波热度&#xff0c;直…

Spring Security 核心解读(二)自定义认证授权体系

自定义认证授权体系 概述自定义认证定义登录接口配置 Security 放行策略定义通用登录过滤器并将其配置到 Security 过滤器链上定义资源接口在 Security 授权设置中放行启动项目 结尾 概述 以前使用Spring Security 时&#xff0c;基本都是按部就班参考文档开发。 基本是从 Use…

【Python开发】FastAPI 06:处理错误

某些情况下&#xff0c;有必要向客户端&#xff08;包括前端浏览器、其他应用程序、物联网设备等&#xff09;返回错误提示&#xff0c;以便客户端能够了解错误的类型&#xff0c;从而做出应对。 目录 1 默认处理 1.1 错误介绍 1.2 使用 HTTPException 2 自定义处理 2.1 自…

论旅行之收获2

论旅行之收获2 概况站点第一站&#xff1a;北京市大兴区大兴机场基本情况吐槽小小趣事 第二站&#xff1a;云南省昆明长水机场云南省昆明市五华区基本概况经济分析 第三站&#xff1a;昆明站大理站云南省大理白族自治州大理市下关基本情况 第四站&#xff1a;云南省大理白族自治…

操作系统-进程和线程-处理机调度

目录 一、调度的概念 1.1调度的层次 1.1.1高级调度(作业调度) 1.1.2中级调度(内存调度) 1.1.3低级调度(进程调度) 1.2状态模型 1.3调度的时机 1.4调度方式 1.5进程的切换与过程 二、调度算法的评价指标 2.1CPU利用率 2.2吞吐量 2.3周转时间 2.4带权周转时间 2.5等…

Ansible基础6——文件模块、jinja2模板

文章目录 一、常用文件模块1.1 blockinfile模块1.2 file模块1.2.1 创建文件并赋予权限1.2.2 创建目录并赋予权限1.2.3 创建软连接1.2.4 删除文件或目录 1.3 fetch模块1.4 lineinfile模块1.5 stat模块1.6 synchronize模块 二、jinja2模板2.1 构建jinja2模板2.2 管理jinja2模板2.…

LVGL学习(1):中文字体的转换和汉字显示

在使用LVGL的过程中&#xff0c;我们难免需要显示汉字&#xff0c;所以这篇文章就来介绍一下如何转换中文汉字并成功显示到LVGL中。 文章目录 1 字体转换1.1 GUI Guider自动转换1.2 在线转换 2 字体的使用 1 字体转换 1.1 GUI Guider自动转换 打开GUI Guide&#xff0c;创建…

SAP-MM-批次删除归档操作

对于物料主数据的批次管理&#xff0c;一旦一个物料设置了批次管理&#xff0c;并已经产生了业务数据&#xff0c;但是发现当初业务主数据搞错了&#xff0c;此物料不需要在SAP系统进行批次管理&#xff0c;是否就无法取消其批次管理了呢&#xff0c;因为如果要取消此批次管理&…

Java: 字符集详解

1.计算机的存储规则 在计算机中&#xff0c;任意数据都是以二进制的形式来存储的。 每一个二进制数表示的0&#xff0c;1被称为比特位&#xff0c;8个比特位组成一个字节。 字节&#xff1a;计算机最小的存储单元。 2.ASCII字符集 用于存储英文字符&#xff0c;查询制定AS…

阿里云服务器开通全部端口流程

阿里云服务器端口怎么全部打开&#xff1f;在安全组中开启端口号&#xff0c;在安全组中把端口范围设置为-1/-1&#xff0c;授权对象填0.0.0.0/0&#xff0c;即可开通全部端口号&#xff0c;阿腾云来详细说下阿里云服务器端口全部打开教程&#xff1a; 阿里云服务器端口全部开…

结题报告范文

结题报告范文篇一 项目名称&#xff1a;__________ 项目编号&#xff1a; 项目负责人&#xff1a;_________ 专业年级&#xff1a;__________ 所在学院&#xff1a;__________ 起止年月&#xff1a; 电 话&#xff1a;__________ E-mail&#xff1a; 填表时期&#xff1a; 福建…

Vue基础入门(下)

<script src"https://unpkg.com/vuenext"></script> mixin混入&#xff08;局部使用&#xff09; 定义mixin对象 <script>// mixin 混入const mymixin{data(){return {number:2,count:1}},created(){console.log(mymixin created);},methods:{…

【Unity3D】Bloom特效

1 Bloom 特效原理 Bloom 特效是指&#xff1a;将画面中较亮的区域向外扩散&#xff0c;造成一种朦脓的效果。实现 Bloom 特效&#xff0c;一般要经过 3 个阶段处理&#xff1a;亮区域检测、高斯模糊、Bloom 合成。 本文完整资源见→Unity3D Bloom 特效。 1&#xff09;亮区域检…

OS-内存管理1- 4种基本管理方式(连续分配,页式,段式,段页)。

一&#xff0c;内存管理四种方式。 二&#xff0c;连续分配管理方式。 连续分配方式&#xff1a;为用户分配连续的内存空间。 1.单一连续分配方式 2.固定分区分配方式 3.动态分区分配方式 4.三种连续分配方式的对比。 三&#xff0c;基于页式存储管理。 1.页式 为进一步提高…

嵌入式系统中I2C总线通信基本方法

将 I2C spec 文章总结为一篇&#xff0c;目录如下 I2C Introduction I2C Architecture I2C Transfer I2C Synchronization And Arbitration I2C Hs-mode1、I2C Introduction 1、I2C 历史 I2C&#xff1a;Inter-Integrated Circuit&#xff0c;集成电路总线。 I2C 是 Philips…

部分网络结构记录

CVPR 2022 | Mobile-Former来了&#xff01;微软提出&#xff1a;MobileNetTransformer轻量化并行网络 文章链接: CVPR 2022 | Mobile-Former来了&#xff01;微软提出&#xff1a;MobileNetTransformer轻量化并行网络 - 知乎 (zhihu.com) Mobile-Former架构图 Mobile-Form…

Mybatis学习笔记一

目录 一、Mybatis特性二、快速入门1.导入依赖2.mybatis-config.xml配置3.创建mapper接口4.创建MyBatis的映射文件5.通过junit测试功能 三、MyBatis获取参数值的两种方式&#xff08;重点&#xff09;1.单个字面量类型的参数2.多个字面量类型的参数3.map集合类型的参数4.实体类类…

【六一特别文章】Python编写一个六一儿童节问答小游戏及趣味比赛

随着六一儿童节的到来&#xff0c;我们可以为孩子们编写一个有趣的小游戏&#xff0c;让他们在游戏中学习有关六一儿童节的知识。本文将介绍如何用Python编写一个六一儿童节问答小游戏及趣味比赛。 首先&#xff0c;我们需要准备一些有关六一儿童节的问题和答案。这里我准备了…

云原生之docker详解

目录 1.云原生概念 1.1 云原生定义 1.2 云原生元素 1.2.1 微服务 1.2.2 DevOps 1.2.3 持续交付 1.2.4 容器化 2. Docker 2.1 Docker概述 2.1.1 Docker 定义 2.1.2 Docker应用场景 2.1.3 Docker的架构 2.2 Docker命令 2.2.1 docker进程相关命令 2.2.2 docker镜像…

htmlCSS-----CSS选择器(下)

目录 前言&#xff1a; 2.高级选择器 &#xff08;1&#xff09;子代选择器 &#xff08;2&#xff09;伪类选择器 &#xff08;3&#xff09;后代选择器 &#xff08;4&#xff09;兄弟选择器 相邻兄弟选择器 通用兄弟选择器 &#xff08;5&#xff09;并集选择器 &am…