2012-03-13 4 views
-4

再帰を使用して2つの文字列が似ているかどうかを確認する方法?例えば

check("abs","abc");// Return true 
check("ab","ac");// Return false 
check("ab","abc");// Return false 

あなたは再帰的に

 public static boolean check(String s1, String s2) { 
if (s1.equals(s2)) { 
return 1; 
if (s1.length < s2.length) { 
return 0; 
if (s1.length > s2.length) { 
return 0; 
if (s1.length == s2.length) { 
for (int i; i< s1.length; i++){ 
if(s1.charAt[i].equalss2.charAt[i]) { 
return 1 

    ?? 
    } 

は、私はいくつかの変更を行い、自分で最初のアプローチしようとしたが、このコードはコンパイルまたは実行するかどうか私は知らないこの方法を記述しますどのように私は何それが欲しい。再帰を使用する

+2

この宿題はありますか? – ibid

+4

あなたの例では、 'check( "abs"、 "abc")'がtrueとfalseの両方を返します。 – JoshRagem

+0

第1と第3の例は同じですが、最初に真、3番目の偽?? – shift66

答えて

0

必要はありません、私はそれは良いアイデアだから、あなたはそれが割り当てですので、これを行うにはしたくないと仮定し、この

public static boolean check(String s1, String s2) { 
    int count = 0; 
    if (s1.length() != s2.length()) { 
     return false; 
    else { 
     for (int i=0; i< s1.length(); i++){ 
      if(s1.charAt(i) != s2.charAt(i)) 
       return false; 
      count = i; 
     } 
     if(count == s1.length()-1) 
      return true; 
    } 
    return false; 
} 
+6

これは明らかに宿題なので、これは許可されていません。しかし、関係なく、それを解決しようとしている少なくともいくつかの仕事を済ませていることを彼が示すまで、彼は答えを与えてくれませんか?彼の怠惰な行動を奨励しません。 –

0

を使用することによって、これを達成することができます。 :)だから私はあなたのためのコードを記述するつもりはないが、ロジックはこのようになります:

  • 両方の文字列が空の場合、両方の文字列が最初の文字を持っている場合は、それらが等しい
  • あり、それら最初の文字が等しいと文字列の残りの部分は(再帰的ステップ)が等しい場合はそれ以外の場合は文字列はあなたが正常に再帰的にこれを書いていないだろうが、あなたが本当に主張すれば
0

等しくない

  • 等しく、明白な方法は、文字列の最初の文字を比較し、(再帰的に)残り(戻り値は2つの論理andです)。 /あなたが最後(空の文字列)になると、それらも等しい。数学とコンピュータサイエンスの

  • 0

    Recursion:

    、彼らは二つの特性によって定義することができたときにオブジェクトやメソッドのクラスは、再帰的な挙動を示す:だからあなたはそれらの2を定義している

    A simple base case (or cases), and 
    A set of rules which reduce all other cases toward the base case. 
    

    メソッド内で実装します。 このような基本ケースは、0""のような特殊な値で定義されることがよくあります。

    この例では、両方の文字列が""の場合の処理​​を定義できます。

    その他のプロパティは、ベースケースにつながなければなりません。つまり、このルールではベースケースに到達する必要があります。あなたの場合、空の文字列""

    このプロパティはsubstringの何らかの種類の操作であり、""(基本ケース)になります。したがって、このルールは次のようになります。最初の文字と残りの文字列(check(remaining stringによる再帰)が等しい場合、文字列は等しくなります。

    関連する問題