Rekursive string-Umkehr-Funktion in javascript?
Ich bin ein ziemlich erfahrener frontend-engineer mit einer schwachen CS-hintergrund. Ich versuche, meinen Kopf um das Konzept der Rekursion. Die meisten Beispiele und angeblichen Erklärungen, die ich finden kann sind einfach nicht zu erklären, es in einer Weise, die ich finden einfach zu verstehen.
Ich setze mir eine Aufgabe schreiben Sie eine Funktion reverse, die eine Zeichenkette rekursiv. Ich weiß, es hat ein Basis-Zustand (d.h. die Lösung ist gefunden), aber ich kann nicht herausfinden, wie man eigentlich so etwas schreiben und konnte die demo nutzen, um zu studieren.
Könnte mir jemand eine Probe geben Funktion?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas wie:
Also die Funktion ist rekursiv, wie Sie es selbst nennt, um die Arbeit zu tun.
slice()
vorzuziehen ist, umsubstr()
: es ist standardisiert in der ECMAScript-Spezifikation und arbeitet einheitlich cross-browser.Einen tail-rekursive version, nur zum Spaß (auch wenn JavaScript nicht funktioniert tail call elimination):
25% schnellere Funktion: jsperf.com
JS:
Einer Zeile code mit ternäre Operatoren Sie können ganz einfach umkehren.
Erklärung: wenn string vorhanden ist (wenn nicht null) dann return Rekursion sonst stoppen die Rekursion.
Funktionsaufruf:
//Aufruf dieser Funktion mit dem string als parameter
Entsprechend der MDN Web-Docs, sollten Sie
substring()
stattsubstr()
:Zusätzlich, wenn kein index zur Verfügung gestellt, die als parameter
charAt()
, der Standardwert ist0
.Daher können wir schreiben einen rekursiven one-liner, um das umkehren einer Zeichenfolge mit einem ternärer operator und durch die Anwendung der Logik oben beschrieben:
JS:
Bisher das beste, was ich denke:
Versuchen Sie dies:
Dies ist eine ziemlich einfache C# - Implementierung des Algorithmus, den Sie gefragt haben.
Ich denke, es könnte umgeschrieben werden in javascript ziemlich einfach.
Es ist ausführlich, aber ich wie machen es leicht zu verstehen, in logische Schritte:
}
Dann nennen mag: