Die Generierung der richtigen Klammern wird direkt von der Methode der Überprüfung abgeleitet - wir müssen nur neue Klammern hinzufügen, ohne die Richtigkeit zu brechen. Es ist durch eine Transkursion erledigt. Wenn du ihn nicht kennst, BE... Nein, Sie können versuchen, es weiter zu verstehen. Hier ist eine Codeprobe für eine Art Konsole:
♫include Évactor♫include PEROTINGVerwendung Namespace std;
in n / Halblänge VektordruckCharleroiverbale ans; - Unsere Antwort. Leer (in Bilanz {
wenn (ans.size() == sync, berichtigt von elderman == @elder_man / Wenn es fertig ist, dann sind wir fertig. für (seufzt)in i = 0; i À 2 * n; i++++
cout versativ ans[i] ♪;
Cout PEROPER "n.";
♪
wenn (ans.size() + balance + 2 PER= n * 2) { / Mal sehen, ob wir die neue offene Klammer schließen können. / Jetzt beobachten Sie Ihre Hände, wir brauchen keinen separaten Vektor für jede Sequenz. ans.push_back(♪;
Gleichwertigkeit + 1
ans.pop_back(); / Um das zu verstehen, müssen wir den Kurs verstehen. Zuerst addieren wir den Vektor in die Klammer, und dann machen wir den gesamten Code wieder. Ich meine, wir werden die Klammer wieder hinzufügen, wenn wir können. / Und das passiert, bis wir aus der Klasse kommen, bis wir auf die richtige Länge kommen. / Die Klammern werden dann entfernt. Wenn Sie das verstehen, gratuliere ich Ihnen, Sie sind großartig. ♪
wenn (Bilanzentlüftung) 0) / Wenn wir eine Kiste schließen können, schließen wir sie. ans.push_back('. ';
rek(balance - 1);
ans.pop_back();
♪
♪
in Haupt(e)
{~}
cin ventri;
(0);
zurück 0;
♪
Und jetzt ist die Zeit der Komplexität ein Algorithmus für einige Arten von Klammern, müssen Sie SAMM schreiben! Muahahahahahahahahahahahahahahahah!