2016-10-06 2 views
-4

先生と私はJavaで部分文字列や配列を使わずに再帰的置換関数を書くことができるかどうかについて議論していました。Javaで配列や部分文字列を使わずに再帰的置換関数を書くにはどうすればいいですか

これを行う方法はありますか?

+0

不変なので、おそらくStringではありません。たぶんStringBuilder。 – markbernard

+2

メソッドシグネチャがなくても、私たちが何を処理しなければならないかを知ることは難しいです。では、実際の仕様/制約は何ですか?何を試しましたか? – pjs

+1

何らかの形で並び替えは、一連の要素を保持するデータ構造が必要であることを意味します。あなたは 'List'を使うことができますが、それは概念的には配列からあまり離れていません。 – Henry

答えて

0

答えははいです。これを行うことができます。私は、 "部分文字列および/または配列を使用しない"とは、情報が再帰に渡されることを指していると仮定しています。あなたはを置き換え、並べ替える要素のための何らかの種類のコンテナを持っています。

その場合、数字の引数の数字として要素のインデックスを数値でエンコードして、ひどいひねりを引くことによって行うことができます。たとえば、3つの要素があり、左端の桁にセンチネル値として1を使用すると(場合によっては先頭のインデックスとして0を持つことができます)、1は開始していないことを意味し、10は最初の要素が102は1番目と3番目を意味し、1021は4桁の引数を持ち、セットに3つの要素があるので、私が順列を印刷する準備ができていることを意味します。次に、% 10/ 10という算術演算を使って印刷する要素を解体し、それらを取り除くことができます。

私はこれをJavaではなくRubyで実装しました。実際のコードを共有するつもりはありません。これは、あまりに恐ろしいことです。しかし、それは反復的に要素の入力配列と引数としての整数、部分解の部分文字列や配列では機能しません。

関連する問題