目录
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
- 1、输入
- 2、输出
- 3、说明
- 4、再输入
- 5、处理非法输入,确保通过率100%,千万不要大意失荆州
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
感谢@艾玛·沃特森提供的华为OD机试真题2023Q2 100分“按单词下标区间翻转文章内容”,这估计是年度最简单题目了,已现金红包感谢。
祝大家考试顺序,也能碰到如此送分题,难道和头像有关系?
考试之前,拜一拜,没坏处~
题目有点草啊,我整理一下。
一、题目描述
给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。
请翻转片段中指定区间的单词顺序并返回翻转后的内容。
例如:
给定的英文文章片段为"I am nezha soft",翻转区间为[0,3],
则输出“soft nezha am I”。
二、输入描述
- 第一行输入英文文章内容即英文字符串;
- 第二行输入待翻转内容起始单词下标;
- 第三行输入待翻转内容最后一个单词下标。
三、输出描述
翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。
备注:
英文文章内容首尾无空格。
四、解题思路
- 第一行输入英文字符串;
- 第二行输入起始单词下标;
- 第三行输入最后一个单词下标;
- 处理非法输入
- 如果是负数,当做0处理;
- 如果大于数组最大长度,当做数组最大长度处理;
- 定义变量reversalIndex,表示待反转的字符串下角标;
- 定义变量flag,表示是否开始反转;
- 遍历英文字符串;
- 判断是否开始反转;
- 如果开始反转;
- 输出开始反转的字符串;
- 反转到最开始的下角标处结束;
- 如果未开始反转;
- 输出当前字符;
五、Java算法源码
package com.guor.od;
import java.util.*;
public class OdTest {
public static void main(String[] args) {
// 英文字符串
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String arr[] = input.split(" ");
// 起始单词下标
int start = sc.nextInt();
// 最后一个单词下标
int end = sc.nextInt();
// 处理非法输入
if (end < 0 && start < 0 || start > end) {
System.out.println(input);
return;
}
// 如果是负数,当做0处理
if (start < 0) {
start = 0;
}
// 如果大于数组最大长度,当做数组最大长度处理
if (end > arr.length - 1) {
end = arr.length - 1;
}
// 待反转的字符串下角标
int reversalIndex = end;
// 是否开始反转
boolean reversalStartFlag = false;
for (int i = 0; i < arr.length; i++) {
// 开始反转
if(i == start){
reversalStartFlag = true;
}
// 反转
if(reversalStartFlag){
System.out.print(arr[reversalIndex]+" ");
// 反转到最开始的下角标处结束
if (reversalIndex == start){
reversalStartFlag = false;
}
reversalIndex--;
}else{
System.out.print(arr[i]+" ");
}
}
}
}
六、效果展示
1、输入
nezha love study java !
1 3
2、输出
nezha java study love !
3、说明
- 从下角标1开始反转,反转到下角标3;
- 即love处变为java,study依旧是study,java变为love;
- 输出nezha java study love ! 。
4、再输入
nezha love study java !
-2 3
如果有负数,按照题意
如果是负数,当做0处理;
如果大于数组最大长度,当做数组最大长度处理;
在做题时,这些异常情况都要考虑到,才能通过率100%。
5、处理非法输入,确保通过率100%,千万不要大意失荆州
🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】
🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。