2017-11-30 2 views
-4

Ich lerne über Rekursion und ich möchte eine Funktion zu schreiben, etwas und geben Sie mir die gleiche Zeichenfolge, aber invers, aber kann nicht die Logik dafür finden.Versuchen, herauszufinden, wie Rekursion C#

public static string Reverse(string text, int textlength) 
    { 
     if (textlength== 0) 
     { 
      return text.ElementAt(textlength).ToString(); 
     } 
     else 
     { 
      return Reverse(text, textlength - 1); 
     }   
    } 

Wie könnte ich das mit Rekursion tun?

+2

Was erwarten Sie von 'text.ElementAt (-1)'? – NetMage

+0

ist angenommen, dass sollte das erste Zeichen zurückgeben, vorausgesetzt, dass das Wort "Brief" ist, sollte es "l" als letzte Iteration zurückgeben –

+0

@JavierSalas sooooo funktioniert es so? –

Antwort

1

Rekursion bezieht sich immer auf zwei Fälle, den Basisfall und den rekursiven Fall.

Der Basisfall ist, wenn die Zeichenfolge 0 oder 1 Zeichen ist - die umgekehrte ist nur, was übergeben wurde, so dass wir text zurückgeben.

Der rekursive Fall ist, wenn text länger als 1 Zeichen ist, müssen wir die Operation in Bezug auf sich selbst definieren. In diesem Fall ist die Umkehrung der Zeichenfolge die Umkehrung des Rests der Zeichenfolge gefolgt von dem ersten Zeichen.

public static string Reverse(string text) { 
    if (text.Length <= 1) // base case 
     return text; 
    else // recursive case 
     return Reverse(text.Substring(1))+text.Substring(0, 1); 
} 
Verwandte Themen