In diesem Artikel wird erläutert, wie Java verwendet wird, um die Länge des am längsten ausgeglichenen Klammers Präfix zu finden. Zuerst werden wir das Problem anhand mehrerer Beispiele verstehen und dann zwei verschiedene Ansätze lernen, um es zu suchen.
Problem ErklärungHier geben wir eine Zeichenfolge mit Klammern und müssen die Länge des ausgewogenen Satzes von Klammern aus der Zeichenfolge finden. Mit anderen Worten, wenn es alle öffnenden Klammern
"(" ")" gibt, nennen wir es ausgewogen. Präfixe definieren einen ausgewogenen Satz vom Beginn einer Zeichenfolge. Zum Beispiel wird für die Menge von Klammern '(()) ()' nur '(())' berücksichtigt.
Eingangs- und Ausgangsszenarien
Für ein besseres Verständnis schauen wir uns einige Eingangs- und Ausgangsszenarien an.
Wenn die Eingangszeichenfolge
- "(()"
- ist, ist das ausgewogene Klammern Präfix () , sodass die Länge 2. beträgt Wenn die Eingangszeichenfolge "(() () () ()) (("
- ist, ist das ausgewogene Klammern Präfix (() ())) Die Länge beträgt also 8. Wenn die Eingangszeichenfolge "(() () ()) () ()"
- ist, ist das ausbalancierte Klammern -Präfix (() ()) , also die Länge ist 6. Die Länge des am längsten ausgewogenen Klammernspräfixes findet sich wie folgt:
Verwenden von Stack -Datenstrukturen
- Zählung Öffnen und Schließen von Klammern
- Verwenden von Stack -Datenstrukturen
Stapel können verwendet werden. Wenn Sie die öffnenden Klammern "
('aus dem Stapel Sie haben 2.) Weiter und geben Sie eine Zählervariable zurück, wenn sie ein leerer Stapel wird Algorithmus
Der Algorithmus lautet wie folgt:Wenn das Zeichen
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>(
- ist, drücken Sie es auf den Stapel.
- Wenn das -Zeichen ) ist, knallt der Stapel.
- erhöht den Zähler um 2. Überprüfen Sie, ob der Stapel leer ist.
- Wenn es leer ist, beendet die Schleife.
- Schritt 3:
Beispiel
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
Ausgabe
Die Eingangszeichenfolge lautet: (()) ((( Die Länge des am längsten ausgewogenen Klammers Präfix ist: 6Zählen Sie das Öffnen und Schließen von Klammern
Dieser Ansatz verwendet zwei Variablen: Anzahl und Länge. Wenn das Zeichen "
(" aus der Zeichenfolge lautet, zählt die Inkrementzzahl nach 1; Wenn das Zeichen ") " ist, zählen Sie die Anzahl der Zahlen um 1 und die Inkrementlänge um 2. Überprüfen Sie, ob die Anzahl 0 ist, wenn es 0 ist, beenden Sie die Schleife und die Rückgabelänge. Beispiel
import java.util.Stack; public class Example { public static int longestBalancedPrefix(String s) { Stack<Character> stack = new Stack<>(); int count = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.push(c); } else if (c == ')') { if (!stack.isEmpty()) { stack.pop(); count += 2; } } if (stack.isEmpty()) { break; } } return count; } public static void main(String[] args) { String s = "((())((("; int length = longestBalancedPrefix(s); System.out.println("入力文字列は:" + s); System.out.println("最長のバランスの取れた括弧のプレフィックスの長さは:" + length); } }Ausgabe
Die Eingangszeichenfolge ist ((()) ()) (())) Die am längsten ausgewogene Klammern -Präfixlänge beträgt 8
Das obige ist der detaillierte Inhalt vonLänge des längsten ausgewogenen Klammers Präfix mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Java ist plattformunabhängig wegen seiner Designphilosophie "einmal schreiben, überall rennen", die auf Java Virtual Machines (JVMS) und Bytecode beruht. 1) Java -Code wird in Bytecode zusammengestellt, von der JVM interpretiert oder im laufenden Fliegen vor Ort zusammengestellt. 2) Achten Sie auf Bibliotheksabhängigkeiten, Leistungsunterschiede und Umgebungskonfigurationen. 3) Durch die Verwendung von Standardbibliotheken ist plattformübergreifender Tests und das Versionsmanagement die beste Praxis, um die Unabhängigkeit der Plattform zu gewährleisten.

Java'splattformindependenceIsnotsimple; itinvolvescomplexities

Java'splattformindependenceBenefitswebapplicationsby -AchoklingenCodetorunanyStemWithajvm, vereinfachte Deploymentandscaling.InTenables: 1) EasyDeploymentacrossDifferents, 2) näher und 3) konsistent

Thejvmistheruntimeenvironmentforexecutingjavabytecode, Crucialforjavas "Writeonce, Runanywhere" -Capability.itmanagesMeMory, ExecutHutHeadreads, Andensuressecurity, MakingessentialForjavadeVentalStandSeffictoRtoChapla -Entwicklungen

JavaremainsatopchoicefordentwicklersDuetoitsplattformindependenz, objektorientierter, strongyping, automaticMemoryManagement und kompetentverzögert, dass TheseFeaturesMakejavaverseandly, geeigneter Anpassungsanwendungen, verzweifelt, verzweifelt

Java'splattformIndependencemeansDevelopersCanwriteCodeonceAnDrunitonanyDevicewithoutrecompiling.Thissisached ThejavavirtualMachine (JVM), Who IssisByteCodeIntomachine-spezifische STRADIONS, ZUSTANDUNGUNGENSALVATIBILIBILIBLETUNGEN.HOWIFRISIONENS

Um die JVM einzurichten, müssen Sie die folgenden Schritte ausführen: 1) Laden Sie die JDK -Set -Variablen herunter und installieren Sie die Umgebungsvariablen, 3) Überprüfen Sie die Installation, 4) Setzen Sie die IDE, 5) Testen Sie das Läuferprogramm. Bei der Einrichtung eines JVM geht es nicht nur darum, es funktioniert, sondern auch die Optimierung der Speicherzuweisung, der Müllsammlung, der Leistungsstimmung und der Fehlerbehandlung, um einen optimalen Betrieb sicherzustellen.

ToensurejavaplatformIndependenz, folge theSesteps: 1) compileandrunyourApplicationOnmultiPlatformSusendifferentosandjvmversions.2) utilizeci/cdpipelines-usjenkinsorgithubactionsForAutomatedCross-PlatformTesting.3) US-Erklammern


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6
Visuelle Webentwicklungstools
