2016-03-20 12 views
-1

私はこれが既に定義済みの関数prototype: int sumInd(char ch, String str)を持っています。 文字dがString nの内側に現れるインデックスの総和を返す再帰関数を作成する必要があります。すでに定義済みのプロトタイプを持つ再帰関数

このプロトタイプでは可能ですか?いいえ、どうしますか?

指定された文字を含む指標の合計文字列の最初のstr.length - 1文字でその文字を含むインデックスの合計に壊れプラス0することができます:ここにあなたのためのソリューション全体を記述することなく

+0

これは実際に「プロトタイプ」と呼ばれましたか? – nekavally

+0

サイドノート:Java言語には「プロトタイプ」はありません。学習プログラミングの1つの部分は、正しい用語を使用していることを確認することです。あなたが他の人に意味をなさない言葉を使用している場合、人々は通常、あなたを助けることができません... – GhostCat

+0

@Jägermeisterプロトタイプはありませんが、私はビルドする必要がある関数を定義しています。私はプロトタイプ。混乱させて申し訳ありません。 –

答えて

0

は、いくつかの方向性がありますまたは最後の文字が指定された文字と等しいかどうかに応じて、str.length - 1(最後の文字のインデックス)を返します。

トリックは、各再帰呼び出しの前にStringの最後の文字を削除して、残りの文字が元のStringと同じインデックスを持つようにすることです。

+0

[バグ](http://bugs.java.com/view_bug.do?bug_id=6294060)、 'String.subString' _copies_を修正するために、基礎となる配列を新しい配列にすることは注目に値します。これは再帰的なアプローチに恐ろしい性能をもたらします。 'char []'を直接使用しない限り。 –

+0

@BoristheSpider良い点ですが、この演習ではパフォーマンスは要件ではないと仮定しています。さもなければ、再帰は最初に使用されません。 – Eran

+0

@ Eranこんにちは、あなたの返信ありがとうございます。 –