每日一道算法题 14(2023-12-22)

按单词下标区间翻转文章内容
 题目描述:
输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。
例如输入字符串 “I am a developer.”,区间[0,3]则输出 “developer. a am I”。

输入描述:
使用换行隔开三个参数
第一个参数为英文文章内容即英文字符串
第二个参数为反转起始单词下标,下标从0开始
第三个参数为结束单词下标,

输出描述:
反转后的英文文章片段,所有单词之间以一个半角空格分割进行输出

示例1
输入:
I am a developer.
1
2
输出:
I a am developer.

示例2
输入:
Hello world!
0
1
输出:
world! Hello
说明:
输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。

示例3
输入:
I am a developer.
0
3

输出:
developer. a am I
说明:
如果两个单词见有多余的空格,将反转后单词间的空格减少到只含一个。
示例4
输入:
Hello!
0
3
输出:
Hello!

说明:指定反转区间只有一个单词,或无有效单词则统一输出原字符串。

package com.tarena.test.B20;

import java.util.Scanner;
import java.util.StringJoiner;/**
 *
 * @author Administrator
 *
 */
public class B23 {

        public static void main(String[] args) {
            try(Scanner sc = new Scanner(System.in)){
                String s = sc.nextLine();
                int startIndex = Integer.parseInt(sc.nextLine());
                int endIndex = Integer.parseInt(sc.nextLine());
                System.out.println(getResult(s,startIndex,endIndex));
            }
                
        }
        
        public static String getResult(String s,int startIndex,int endIndex) {
            String[] sArr = s.split(" ");
            startIndex = Math.min(Math.max(0, startIndex), sArr.length-1);
            endIndex = Math.min(Math.max(0, endIndex), sArr.length-1);
            if(startIndex >= endIndex) return s;
            int l = startIndex;
            int r = endIndex;
            while(l < r) {
                String tmp = sArr[l];
                sArr[l] = sArr[r];
                sArr[r] = tmp;
                l++;
                r--;
            }
            StringJoiner sj = new StringJoiner(" ");
            for(String t : sArr) sj.add(t);
            return sj.toString();
        }
    
}
了解知识点

1、边界值的计算。

相关推荐

  1. 每日算法 14(2023-12-22

    2023-12-22 13:12:01       29 阅读
  2. 每日算法 3(2023-12-11

    2023-12-22 13:12:01       26 阅读
  3. 每日算法 1

    2023-12-22 13:12:01       36 阅读
  4. LeetCode 每日 2023/12/18-2023/12/24

    2023-12-22 13:12:01       33 阅读
  5. 2023.12.29每日

    2023-12-22 13:12:01       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 13:12:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 13:12:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 13:12:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 13:12:01       18 阅读

热门阅读

  1. linux 命令

    2023-12-22 13:12:01       33 阅读
  2. linux中数据库备份

    2023-12-22 13:12:01       36 阅读
  3. Leetcode21 合并两个有序链表

    2023-12-22 13:12:01       36 阅读
  4. 【中间件】owemq 高效的消息队列解决方案

    2023-12-22 13:12:01       43 阅读
  5. 自动导入组件unplugin-auto-import和unplugin-vue-components

    2023-12-22 13:12:01       43 阅读
  6. Ai绘图简介

    2023-12-22 13:12:01       40 阅读
  7. Linux网络编程——概述、TCP/UDP的对比

    2023-12-22 13:12:01       43 阅读
  8. Linux中一些知识积累(持续补充)

    2023-12-22 13:12:01       40 阅读