Huawei ODマシンテスト:単語の下付き文字間隔に応じて記事の内容を反転します(Javaソースコード)

単語の下付き文字間隔に応じて記事の内容を反転します

トピックの説明

複数の単語で構成される英語の記事の断片がある場合、単語はスペースで区切られ、単語の下付き文字は 0 から始まります。
フラグメント内の指定された間隔の単語の順序を反転し、反転したコンテンツを返してください。
たとえば、指定された英語の記事フラグメントが「I am a developer」で、フリップ間隔が [0,3] の場合、「developer a am I」が出力されます。
String reverseWords(String s, int start, int end)

説明を入力してください

3 つの引数を改行で区切ります

  • 最初のパラメータは英語の記事の内容、つまり英語の文字列です。
  • 2 番目のパラメータは、反転するコンテンツの開始単語の添え字です。
  • 3 番目のパラメータは、反転するコンテンツの最後の単語の添え字です。

出力の説明

逆引き英語記事部分の全単語を半角スペースで区切って出力します。

備考
英語記事の内容の先頭と末尾にスペースは入れません

入力 私は開発者です。
1
2
出力 私は開発者です。
説明する なし
入力 ハローワールド
-1
1
出力 世界こんにちは
説明する 添え字が0未満の場合は先頭の単語から開始
入力 私は開発者です
0
5
出力 開発者は私です
説明する 添字が実際の単語数より大きい場合は、添字の最大数に従って計算されます。
入力 私は開発者です
-2
-1
出力 私は開発者です
説明する ロールオーバー間隔が無効な場合、ロールオーバーは実行されません

分析する

  1. それを達成するにはさまざまな方法があり、それをどのように行うかは各人の思考モードによって異なります。
  2. ここで使用するのは、他の複雑なアルゴリズムを使用しない単純な for ループです。
  3. 詳細についてはコードを参照してください

サンプルコード

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

コードの実行例
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_33183456/article/details/131321727
おすすめ