単語の下付き文字間隔に応じて記事の内容を反転します
トピックの説明
複数の単語で構成される英語の記事の断片がある場合、単語はスペースで区切られ、単語の下付き文字は 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 |
出力 | 私は開発者です |
説明する | ロールオーバー間隔が無効な場合、ロールオーバーは実行されません |
分析する
- それを達成するにはさまざまな方法があり、それをどのように行うかは各人の思考モードによって異なります。
- ここで使用するのは、他の複雑なアルゴリズムを使用しない単純な 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]+" ");
}
}
}
コードの実行例