-2

再帰を使用して入力フレーズを反転し、それを出力する Java プログラムを作成するように求められる課題があります。たとえば、「DATA STRUCTURES AND ALGORITHMS」という入力が与えられた場合、プログラムは「ALGORITHMS AND STRUCTURES DATA」を出力します。

制限の 1 つは、単一のローカル String 変数を除いて、ストレージまたは Java コレクションをプログラムで使用できないことです。

複数の行から入力データを読み取り、文字列に再帰メソッドを実装する方法を理解するのに苦労しています。再帰の一般的な概念は理解していますが、再帰を Java に実装するのはより難しい作業です。

4

1 に答える 1

2

尋ねられたように、このソリューションは文字列を単語ごとに「反転」し、単語は単一のスペース文字で区切られています。

public class TestClass {

    public static String wordReverse(String s) {
        int idx = s.indexOf(" ");
        if (idx < 0) {
            // no space char found, thus, s is just a single word, so return just s itself
            return s;
        } else {
            // return at first the recursively reversed rest, followed by a space char and the first extracted word
            return wordReverse(s.substring(idx + 1)) + " " + s.substring(0, idx); 
        }
    }

    public static void main(String[] args) {
        System.out.println(wordReverse("DATA STRUCTURES AND ALGORITHMS"));
    }
}

複数の行から入力データを読み取る方法がわかりません

私はその点を完全には理解していませんが、標準入力からユーザー入力を読み取る方法を求めている場合は、System.inを見てください。

于 2013-02-06T00:03:05.327 に答える