华为OD机试 2023B卷题库疯狂收录中,刷题点这里
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。
例如输入字符串”I am a developer. “,区间[0,3],则输出”developer. a am I”。
使用换行隔开三个参数
第一个参数为英文文章内容即英文字符串
第二个参数为翻转起始单词下标(下标从0开始)
第三个参数为结束单词下标
翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。
此题属于送分题,大家好好把握。
关键点就是从开始下角标到结束下角标,进行字符串的替换。
开始反转了 and 反转次数 <= 起始差值,则进行字符串反转。
package com.guor.od;
import java.util.*;
public class OdTest03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
// 开始下标
int startIndex = Integer.valueOf(sc.nextLine());
// 结束下标
int endIndex = Integer.valueOf(sc.nextLine());
String[] arr = input.split(" ");
// Nezha loves learning Java A B C 1 4 -- Nezha A Java learning loves B C
StringBuilder reverseBuilder = new StringBuilder();
boolean reverseFlag = false;
// 起始差值
int diff = endIndex - startIndex;
// 反转次数
int times = 0;
for (int i = 0; i < arr.length; i++) {
// 开始反转了
if (startIndex == i) {
reverseFlag = true;
}
// 开始反转了 and 反转次数 <= 起始差值,则进行字符串反转
if (reverseFlag && times <= diff) {
reverseBuilder.append(arr[endIndex - times]).append(" ");
times++;
continue;
}
reverseBuilder.append(arr[i]).append(" ");
}
System.out.println(reverseBuilder);
}
}
Nezha loves learning Java A B C
1
4
Nezha A Java learning loves B C
下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】
本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。