华为OD机试2025A卷 - 按单词下标区间翻转文章内容(Java & Python& JS & C++ & C )

这是一篇关于华为OD机考的文章,详细介绍了如何按单词下标区间翻转英文文章内容的题目,包括输入输出描述、解题思路以及C++、JavaScript、Java和Python的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最新华为OD机试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看

题目描述

给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。
请翻转片段中指定区间的单词顺序并返回翻转后的内容。

例如给定的英文文章片段为"I am a developer",翻转区间为[0,3],则输出“developer a am I”。

String reverseWords(String s, int start, int end)

输入描述

使用换行隔开三个参数

  • 第一个参数为英文文章内容即英文字符串
  • 第二个参数为待翻转内容起始单词下标
  • 第三个参数为待翻转内容最后一个单词下标

备注

英文文章内容首尾无空格

输出描述

翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。

示例1

输入

I am a developer.
1
2

输出

I a am developer.

说明

示例2

输入

hello world
-1
1

输出

world hello

说明

下标小于0时,从第一个单词开始

示例3

输入

I am a developer
0
5

输出

developer a am I

说明

下标大于实际单词个数,则按最大下标算

示例4

输入

I am a developer
-2
-1

输出

I am a developer

说明

翻转区间无效时,不做翻转

解题思路

  1. 将英文文章片段拆分为单词数组。

  2. 对起始下标和结束下标进行边界检查,确保它们在有效范围内。

  3. 使用双指针法翻转指定区间的单词顺序:

    • 初始化两个指针,一个指向待翻转区间的起始位置(i),另一个指向待翻转区间的结束位置(j)。
    • i 小于 j 时,交换 words[i]words[j] 的值,然后将 i 向右移动一位,将 j 向左移动一位。重复此过程,直到 i 大于等于 j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

算法大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值