华为OD机试 - 句子逆序 - 字符串、逆序遍历(Java 2025 B卷 100分)

华为OD机试C/D卷备考指南:真题解析与多语言实战策略 数据结构与算法是计算机科学的核心基础,其原理在于通过高效组织和管理数据,优化问题求解过程。掌握经典数据结构(如哈希表、图)和算法思想(如动态规划、搜索)的技术价值在于,能显著提升软件性能与资源利用率,是解决大规模数据处理、路径规划、资源调度等复杂工程问题的关键。在求职面试、尤其是像华为OD这类大厂的技术机试中,对算法与数据结构的深入理解和熟练应用是重要的考察维度。本文聚焦华为OD机试的C卷与D卷,通过解析【社交网络相同爱好好友查询】等真题场景,结合【倒排索引】等核心思想,提供从考情分析、备考规划到多语言(J 阅读详情

在这里插入图片描述

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

专栏导读

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

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

一、题目描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”。所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。

数据范围:输入的字符串长度满足 1 ≤ n ≤ 1000 。

注意本题有多组输入。

二、输入描述

输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

三、输出描述

得到逆序的句子

四、测试用例

测试用例1:

1、输入

I am a boy

2、输出

boy a am I

测试用例2:

1、输入

nowcoder

2、输出

nowcoder

五、解题思路

  1. 程序通过一个 while 循环和 Scanner 对象来持续读取用户输入的多行句子。
  2. 对每一行读入的句子,使用字符串的 split(" ") 方法,以空格为分隔符将其切割成一个一个的单词。这些单词被存储在一个字符串数组 String[] 中。
  3. 通过一个 for 循环,从后往前遍历这个单词数组(即从数组的最后一个元素到第一个元素)。在循环中,依次打印出每个单词,并在单词之间加上空格。

六、Java算法源码

public class OdTest {
    public static void main(String[] args) {
        // 创建 Scanner 对象以读取控制台输入
        Scanner scanner = new Scanner(System.in);

        // 使用 hasNextLine() 来处理多组输入,直到没有更多输入行为止
        while (scanner.hasNextLine()) {
            // 读取一整行输入
            String line = scanner.nextLine();

            // 使用正则表达式 "\\s+" 按一个或多个空格分割字符串,得到单词数组
            // 这样做可以兼容单词间有多个空格的情况
            String[] words = line.split("\\s+");

            // 创建 StringBuilder 对象用于高效拼接字符串
            StringBuilder reversedSentence = new StringBuilder();

            // 从后向前遍历单词数组
            for (int i = words.length - 1; i >= 0; i--) {
                // 将当前单词追加到 StringBuilder
                reversedSentence.append(words[i]);
                // 如果不是第一个单词(即i>0),则在后面追加一个空格作为分隔符
                if (i > 0) {
                    reversedSentence.append(" ");
                }
            }

            // 打印最终结果,trim()方法用于移除可能存在于末尾的多余空格
            // 在本代码的逻辑中,因为最后一个单词后面不加空格,所以trim()不是必须的,但这是一个好的编程习惯
            System.out.println(reversedSentence.toString());
        }

        // 关闭 scanner
        scanner.close();
    }
}

七、效果展示

1、输入

nezha study gpt

2、输出

gpt study nezha

在这里插入图片描述


🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2025 B卷 200分)

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

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

在这里插入图片描述

【华为OD机考真题】- 判断字符串子序列(2025B卷-100分)(Java版) 🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可 阅读详情

相关推荐

【牛客网华为机试】HJ13 句子逆序

题目 描述 将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 输入描述: 输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。 输出描述: 得到逆序的句子 示例1 输入: I am a boy 输出: boy a am I 解题思路 (1)使用split函数将输入字符串按照""进行切分 (2)对切分后的列表进行反转 (3)对反转后的列表用j...

202xxx的博客 1130

C++实现英文句子中的单词逆序输出的方法

本文实例讲述了C++实现英文句子中的单词逆序输出的方法。分享给大家供大家参考,具体如下: #include stdafx.h #include #include #include using namespace std; int main(int arc, char** argv) { string str=I come from liaoning.; stack works; int len=str.length(); while(1) { int start=str.find_first_not

HJ13-句子逆序

将一个英语语句以单词为单位逆序排放,所有单词之间用一个空格隔开。

wdm2024的博客 200

【HJ13】句子逆序

【牛客刷题】华为机试题:句子逆序

Caso_卡索的博客 513

【2025华为OD机考真题】- 判断字符串子序列(B卷-100分)(JS版)

🔔本文收录于「最新最全华为OD机试真题(JavaScript版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,

**My Coding Family** 1158

华为OD机试 - 最长回文字符串 - 贪心算法(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释发现新题目,随时更新。

学Java,找哪吒 1295

华为机试题:HJ13 句子逆序(python)

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”。所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符:输入的字符串长度满足 1 ≤ n ≤ 1000:输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。:得到逆序的句子I am a boyboy a am Inowcodernowcoder。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 1089

【2025华为OD机考真题】- 判断字符串子序(B卷-100分)(Golang版)

🔔本文收录于「最新最全华为OD机试真题(Golang版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新

**My Coding Family** 1127

华为OD机试真题—— 判断字符串子序列(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

华为OD机试真题—— 判断字符串子序列(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

专注分享技术、实用优质教程、资源 877

【华为OD机试】真题A卷-单词倒序(JAVA)

【华为OD机试】真题A卷-单词倒序(JAVA):输入单行英文句子,里面包含英文字母,空格以及.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。

u014481728的博客 699

【2025华为OD机考真题】- 判断字符串子序列(B卷-100分)(C++版)

🔔本文收录于「最新最全华为OD机试真题(C++版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 1040

华为OD机试高频题:动态规划解决子序列计数问题

动态规划是解决复杂计数问题的核心算法思想,其本质是通过状态定义和转移方程,将问题分解为可重叠的子问题,从而避免指数级枚举。在字符串处理领域,动态规划常用于解决子序列匹配、编辑距离等经典问题,具有极高的技术价值。本文以一道高频机试题为例,深入剖析如何利用动态规划高效统计字符串中特定顺序子序列的数量。通过状态数组dp[j]记录匹配到模式串前j位的方案数,并采用从后往前更新的关键技巧,确保计数不重不漏,时间复杂度优化至O(n*m)。该解法不仅适用于华为OD机试,也是应对大厂技术笔试中字符串与动态规划结合类问题的通

weixin_30770783的博客 586

【2025华为OD机考真题】- 判断字符串子序列(B卷-100分)(C版)

🔔本文收录于「最新最全华为OD机试真题(C版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 1085

20天拿下华为OD笔试之【贪心】2025B-判断字符串子序列【Py/Java/C++/C/JS/Go六种语言OD独家2025B卷真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

可上练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 101

【华为OD机试】真题A卷-单词倒序(Python)

【华为OD机试】真题A卷-单词倒序(Python):输入单行英文句子,里面包含英文字母,空格以及.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。

u014481728的博客 765

华为OD机试 - 单词倒序(Java 2024 B卷 100分)

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2088

华为OD机试:游戏分组算法实战与多语言实现详解

子集和问题是算法设计与分析中的经典问题,其核心是在给定集合中寻找满足特定条件的子集。其原理通常涉及组合搜索、动态规划等算法范式,旨在高效解决资源分配、任务调度等优化需求。该问题的技术价值在于,它能有效锻炼开发者的数学抽象、逻辑建模和工程实现能力,是衡量算法功底的重要标尺。在应用场景上,子集和问题广泛出现在游戏匹配、负载均衡、投资组合等需要公平划分或最优分配的领域。本文以华为OD机试中热门的“游戏分组”真题为例,深入剖析了如何将“公平匹配”这一业务需求,精准转化为子集和问题的变体,并提供了从暴力搜索到动态规划

weixin_33957648的博客 538

【华为OD--018 寻找密码 100分(python、java、c++、js、c)】

对每个密码检查其前缀,最坏情况下,检查所有密码的前缀的复杂度是 O(n * m),其中 m 是平均密码长度。逆向遍历:由于我们需要找出最长的密码,因此可以从最长的密码开始检查(即从 ps 列表的最后一个元素开始检查)。对每个密码,最坏情况下需要检查它的所有前缀,检查每个前缀的时间复杂度为 O(m),其中 m 是密码的最大长度。前缀检查:对于每个密码,需要检查它的所有前缀,最坏情况下每个密码需要检查 O(m) 次,其中 m 是密码的最大长度。前缀检查:对每个密码,检查它的所有前缀是否也存在于密码列表中。

CodeClimb的博客 1328
上一篇: 华为OD机试 - 模拟数据序列化传输(Python/JS/C/C++ 2025 B卷 200分)
下一篇: 华为OD机试 - 句子逆序 - 字符串、逆序遍历(Python/JS/C/C++ 2025 B卷 100分)
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值