华为OD机试 - 按索引范围翻转文章片段 - 字符串(Java 2022 Q4 100分)

news/2024/7/20 18:19:18 标签: 华为od, java, python, 字符串

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

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

专栏导读

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。

例如输入字符串”I am a developer. “,区间[0,3],则输出”developer. a am I”。

二、输入描述

使用换行隔开三个参数
第一个参数为英文文章内容即英文字符串
第二个参数为翻转起始单词下标(下标从0开始)
第三个参数为结束单词下标

三、输出描述

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

四、解题思路

此题属于送分题,大家好好把握。

关键点就是从开始下角标到结束下角标,进行字符串的替换。

开始反转了 and 反转次数 <= 起始差值,则进行字符串反转。

五、Java算法源码

java">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);
    }
}

六、效果展示

1、输入

Nezha loves learning Java A B C
1
4

2、输出

Nezha A Java learning loves B C

3、说明

  • 下角标为1的字符串是loves,和下角标为4的A交换;
  • 下角标为2的字符串 learning 和下角标为3的Java交换;
  • 输出结果Nezha A Java learning loves B C

在这里插入图片描述

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.niftyadmin.cn/n/4971393.html

相关文章

【Java】【Stream流】分页

在Java开发中&#xff0c;使用Java自带Stream流的API来进行开发是一种常见的做法。 下面是一个简单的例子&#xff1a; 假设我们有一个包含100个数据项的列表。我们需要按照每页10个数据进行分页&#xff0c;并返回指定页码的数据。可以使用Java 8中的流来实现分页&#xff1…

基于海洋捕食者算法优化的BP神经网络(预测应用) - 附代码

基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.海洋捕食者优化BP神经网络2.1 BP神经网络参数设置2.2 海洋捕食者算法应用 4.测试结果&…

STM32F103 USB OTA升级APP (二)

接上一篇STM32F103 USB OTA升级BootLoader (一)&#xff1a;跳转链接 修改程序启动地址和Flash大小 修改main.c代码 #include "main.h" #include "usart.h" #include "usb_device.h" #include "gpio.h" #include "Update.h&quo…

使用EF Core更新与修改生产数据库

使用EF Core的Code First&#xff0c;在设计阶段&#xff0c;直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除、更新最新的数据结构。由于没有什么数据&#xff0c;删除的风险非常低。但是对于已经投入生产的数据库&#xff0c;这个方法就绝对不可行了。 考虑…

软件设计师学习笔记6-存储系统

1.层次化存储体系 1.1层次化存储结构 局部性原理是层次化存储结构的支持 时空局部性&#xff1a;刚被访问的内容&#xff0c;立即又被访问(eg: 循环体 ) 空间局部性&#xff1a;刚被访问的内容&#xff0c;临近的空间很快被访问(eg:数组) 1.2层次化存储结构的分类 DRAM&…

《QT+PCL 第五章》点云特征-PFH

QT增加点云特征PFH 代码用法代码 #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d.h> #include <pcl/features/pfh.h>int main

739. 每日温度 ● 496.下一个更大元素 I

739. 每日温度 class Solution { public:vector<int> dailyTemperatures(vector<int>& T) {stack<int> st; // 递增栈vector<int> result(T.size(), 0);for (int i 0; i < T.size(); i) {while (!st.empty() && T[i] > T[st.top()…

哪个蓝牙耳机打电话比较好,打电话降噪蓝牙耳机推荐

近年来&#xff0c;骨传导耳机的市场表现出了显著的增长&#xff0c;其市场竞争也变得异常激烈&#xff0c;与传统无线耳机相比&#xff0c;“骨传导耳机”的知名度还达不到举世皆知的地步&#xff0c;但对于运动群体以及部分有听力损伤的群体来说&#xff0c;骨传导耳机还是有…