Dieser Artikel stellt hauptsächlich die Push- und Popup-Sequenz des PHP-Implementierungsstapels vor. Jetzt kann ich ihn mit Ihnen teilen.
die Push-Sequenz eines bestimmten Stapels, und die Sequenz 1,2,3,4,5
ist eine Pop-Sequenz, die der Push-Sequenz entspricht, aber 4,5,3,2,1
kann nicht die Pop-Sequenz der Push-Sequenz sein. (Hinweis: Die Längen dieser beiden Sequenzen sind gleich) 4,3,5,1,2
Zeitlimit: 1 Sekunde Platzlimit: 32768K
<?php function isPopOrder($pushValue, $popValue){ $stack = new SplStack; $count = count($pushValue); for ($i = 0, $j = 0; $i < $count; $i++) { $stack->push($pushValue[$i]); while (!$stack->isEmpty() && $stack->top() == $popValue[$j] && $j < $count) { $stack->pop(); $j++; } } return $stack->isEmpty(); } var_dump(isPopOrder([1, 2, 3, 4, 5], [4, 5, 3, 2, 1]));
und die Pop-Sequenz ist 1,2,3,4,5
4,5,3,2,1
nicht gleich 1
ist Das Stapelelement ist 4
und das oberste Element des Stapels ist 1,2,3,4
, 4
5
-Stapel. Das oberste Element ist 1,2,3
. Offensichtlich ist 3
nicht gleich dem zu entfernenden Element aus dem Stapel 3
. Wir bewegen uns weiter und schieben 5
in den Hilfsstapel 5
, der gerade herausspringt ist das gleiche wie das oberste Element des Stapels. Wenn das Element herausspringt, wird es zu
5
, bevor wir fortfahren Element des Stapels ist jetzt 3
Dasselbe wie das zu entfernende Element, das oberste Element des Stapels wird entfernt
Zu diesem Zeitpunkt wird das oberste Element des Stapels 3
, und das zu entfernende Element wird zu
2
Zu diesem Zeitpunkt wird das oberste Element des Stapels zu 2
, das zu entfernende Element wird zu
1
Da der Hilfsstapel zu diesem Zeitpunkt leer ist, springen Sie aus while1
Das obige ist der detaillierte Inhalt vonPHP implementiert Stack-Push- und Pop-Sequenzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!