Für diese Lösung fand ich die Verwendung der Rekursion am besten.
Rekursion bedeutet, dass sich eine Funktion selbst aufruft, um kleinere Teile eines Problems zu lösen. Es ist, als würde man ein großes Rätsel lösen, indem man es in kleinere, identische Rätsel aufteilt. Jedes Mal, wenn sich die Funktion selbst aufruft, bearbeitet sie einen kleineren Teil des ursprünglichen Problems.
Rekursion besteht aus zwei Hauptteilen:
Basisfall:
Dies ist der Zeitpunkt, an dem die Rekursion stoppt. Es ist die einfachste mögliche Version des Problems. Betrachten Sie es als den „Torpfosten“. Sobald die Funktion erreicht ist, ruft sie sich nicht mehr selbst auf und gibt Ergebnisse zurück.
In unserem Fall ist dies der Fall, wenn der Index == Länge der Gleichungsparameter ist.
Rekursiver Fall:
Dies ist der Zeitpunkt, an dem sich die Funktion selbst aufruft, um an einem kleineren Teil des Problems zu arbeiten.
Es ist, als ob man dem Basisfall jedes Mal einen Schritt näher kommt.
Das Ziel des Puzzles besteht darin, zu überprüfen, ob eine Zielzahl durch Anwenden von Operatoren ( , *, ||) zwischen einer Reihe von Zahlen ermittelt werden kann.
Hier ist die Herausforderung:
Versuchen Sie, eine Anwendung zwischen der aktuellen und der nächsten Nummer vorzunehmen.
Versuchen Sie, * zwischen der aktuellen und der nächsten Zahl einzufügen.
Versuchen Sie, die beiden Zahlen mit || zu kombinieren (Verkettung).
Setzen Sie diesen Vorgang fort, bis entweder:
Alle Zahlen werden verwendet und das Ergebnis entspricht dem Ziel (Basisfall)
oder
Alle Möglichkeiten werden untersucht, ohne eine Übereinstimmung zu finden (rekursiver Fall)
Die Lösung in Python und C# finden Sie hier
Folgen Sie mir wie immer gerne auf Twitter, um weitere Tipps, Lösungen, Artikel und Blogbeiträge in verschiedenen Medien zu erhalten.
Das obige ist der detaillierte Inhalt vonAoC – DayBridge-Reparatur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!