Heim > Java > javaLernprogramm > Überprüfen Sie, ob Stackelemente in Java in Folge ein paarweise sind

Überprüfen Sie, ob Stackelemente in Java in Folge ein paarweise sind

Mary-Kate Olsen
Freigeben: 2025-02-07 11:31:10
Original
970 Leute haben es durchsucht

Check if stack elements are pairwise consecutive in Java

Der

Stack ist eine grundlegende Datenstruktur in der Informatik und wird normalerweise für sein Last-In-First-Out-Attribut (LIFO) verwendet. Wenn Sie den Stapel verwenden, können Sie auf ein interessantes Problem stoßen, um zu überprüfen, ob die Elemente des Stapels paarweise kontinuierlich sind. In diesem Artikel lernen wir, wie dieses Problem mit Java gelöst werden kann, um sicherzustellen, dass die Lösung effizient und klar ist.

Problemanweisung

Bei einem Ganzzahl -Stapel besteht die Aufgabe darin, zu bestimmen, ob die Elemente des Stapels paarweise kontinuierlich sind. Wenn der Unterschied zwischen zwei Elementen genau 1 beträgt, werden sie als kontinuierlich angesehen.

Geben Sie ein

<code>4, 5, 2, 3, 10, 11</code>
Nach dem Login kopieren

Ausgabe

<code>元素是否成对连续?<br>true</code>
Nach dem Login kopieren
Schritt zur Überprüfung, ob Stapelelemente gepaart sind und kontinuierlich

Folgende Schritte, um zu überprüfen, ob die Stapelelemente gepaart und kontinuierlich sind:

  • Stapelgröße überprüfen: Wenn die Anzahl der Elemente auf dem Stapel ungerade ist, wird das letzte Element nicht gepaart, sodass es für eine paarweise Inspektion ignoriert werden sollte.
  • Paarbasierte Überprüfung: Schleifen Sie die Elemente durch den Stapel durch und prüfen Sie, ob sie kontinuierlich sind.
  • Stapel wiederherstellen: Nach der Durchführung eines Schecks sollte der Stapel in seinen ursprünglichen Zustand wiederhergestellt werden.
Java -Programm, mit dem Sie prüfen, ob Stapelelemente zu paarweise und zusammenhängender

sind

Folgendes ist ein Programm in Java, das überprüft, ob Stapelelemente paarweise und angrenzend sind:

import java.util.Stack;

public class PairwiseConsecutiveChecker {
    public static boolean areElementsPairwiseConsecutive(Stack<Integer> stack) {
        // 基本情况:如果堆栈为空或只有一个元素,则返回 true
        if (stack.isEmpty() || stack.size() == 1) {
            return true;
        }

        // 使用临时堆栈在检查时保存元素
        Stack<Integer> tempStack = new Stack<>();
        boolean isPairwiseConsecutive = true;

        // 成对处理堆栈元素
        while (!stack.isEmpty()) {
            int first = stack.pop();
            tempStack.push(first);

            if (!stack.isEmpty()) {
                int second = stack.pop();
                tempStack.push(second);

                // 检查这对元素是否连续
                if (Math.abs(first - second) != 1) {
                    isPairwiseConsecutive = false;
                }
            }
        }

        // 恢复原始堆栈
        while (!tempStack.isEmpty()) {
            stack.push(tempStack.pop());
        }

        return isPairwiseConsecutive;
    }

    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(4);
        stack.push(5);
        stack.push(2);
        stack.push(3);
        stack.push(10);
        stack.push(11);

        boolean result = areElementsPairwiseConsecutive(stack);

        System.out.println("元素是否成对连续? " + result);
    }
}
Nach dem Login kopieren
Erläuterung

Stapel wiederherstellen: Da wir den Stapel beim Überprüfen des Rechten geändert haben, ist es sehr wichtig, ihn nach Abschluss des Schecks in seinen ursprünglichen Zustand wiederherzustellen. Dies stellt sicher, dass der Stapel für nachfolgende Operationen unverändert bleibt.

Randfall: Diese Funktion übernimmt Randfälle wie einen leeren Stapel oder einen Stapel mit nur einem Element, wobei die TRUE zurückgibt, da diese Fälle den Zustand unbedeutend erfüllen.

Zeitkomplexität: Die Zeitkomplexität dieser Methode ist o (n) , wobei n die Anzahl der Elemente im Stapel ist. Dies liegt daran, dass wir den Stapel nur einmal durchqueren und Elemente nach Bedarf platzen und drücken.

Raumkomplexität: Da der temporäre Stapel verwendet wird, ist die Raumkomplexität auch o (n) .

Schlussfolgerung

Diese Lösung bietet eine effiziente Möglichkeit, um zu überprüfen, ob Elemente im Stapel zusammen sind. Der Schlüssel ist, den Stapel paarweise zu verarbeiten und sicherzustellen, dass der Stapel nach dem Betrieb in seinen ursprünglichen Zustand wiederhergestellt wird. Dieser Ansatz behält die Integrität des Stapels bei und bietet gleichzeitig eine klare und effektive Lösung.

Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob Stackelemente in Java in Folge ein paarweise sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage