文章目录
- 按单词下标区间翻转文章内容
- 题目描述
- 输入描述
- 输出描述
- 示例代码
按单词下标区间翻转文章内容
题目描述
给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。
请翻转片段中指定区间的单词顺序并返回翻转后的内容。
例如给定的英文文章片段为"I am a developer",翻转区间为[0,3],则输出“developer a am I”。
String reverseWords(String s, int start, int end)
输入描述
使用换行隔开三个参数
- 第一个参数为英文文章内容即英文字符串
- 第二个参数为待翻转内容起始单词下标
- 第三个参数为待翻转内容最后一个单词下标
输出描述
翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。
备注
英文文章内容首尾无空格
用例
输入 | I am a developer. 1 2 |
输出 | I a am developer. |
说明 | 无 |
输入 | hello world -1 1 |
输出 | world hello |
说明 | 下标小于0时,从第一个单词开始 |
输入 | I am a developer 0 5 |
输出 | developer a am I |
说明 | 下标大于实际单词个数,则按最大下标算 |
输入 | I am a developer -2 -1 |
输出 | I am a developer |
说明 | 翻转区间无效时,不做翻转 |
解析
- 很多种方式实现,具体怎么做就看每个人的思维模式。
- 我这里使用的就是简单的for循环 没有用到其他复杂的算法
- 具体看代码
示例代码
import java.util.Scanner;
public class T68 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input=sc.nextLine();
String strArr[]=input.split(" ");
int startIndex=sc.nextInt();
int endIndex=sc.nextInt();
if(endIndex<0 && startIndex<0 || startIndex>endIndex) {
System.out.println(input);
return;
}
if(endIndex>strArr.length-1) {
endIndex=strArr.length-1;
}
if(startIndex<0) {
startIndex=0;
}
for(int i=endIndex-startIndex;i>=startIndex;i--) {
System.out.print(strArr[startIndex+i]+" ");
}
}
}
代码运行示例