Themenbeschreibung
Die kleine schlampige MS.JinlinMS.Jinlin ist eine Prinzessin, die es liebt, sich schick zu machen. Er hat viele Abendkleider wie „ „ „ „ „ „ „ LALA
„ NIHAOMA
und WOBUHAO
viele NIHAOBUHAO
andere Kleidungsstücke, aber weil es zu viele Klamotten sind, muss er packen Sie werden in Kartons verpackt, aber als Prinzessin denke ich plötzlich darüber nach, welche Kleidungsstücke gut aussehen, also nehme ich sie heraus. Natürlich werden auch die Kleidungsstücke oben auf den Kleidungsstücken herausgenommen, und sie werden durcheinander gebracht. Er wollte wissen, welches das oberste Kleidungsstück in der Kiste sei, und wenn die Kiste leer sei, sagte er ihr, Empty
wenn es mehrere Stücke desselben Kleidungsstücks gäbe, müsse er das oberste genommen haben.
Beschreibung eingeben
Geben Sie in Zeile 1 N ein, was insgesamt mehrere Operationen darstellt.
Führen Sie von Zeile 2 bis Zeile N+1 in
out
Vorgänge aus ( in
zum Anziehen von Kleidung, out
zum Herausnehmen von Kleidung).
Das Format ist wie folgt:
in name1
out name2
Ausgabebeschreibung
Geben Sie nach Abschluss von N Vorgängen den Namen der Kleidung oben in der Box aus. Wenn die Box leer ist, geben Sie ihn aus Empty
.
Eingabe- und Ausgabebeispiele
Beispiel 1
eingeben
6
in AMDYES
in INTELNO
in USBAD
in CNYES
out INTELNO
in MDICN
Ausgang
MDICN
Beispiel 2
eingeben
5
in AMDYES
in INTELNO
in USBAD
in CNYES
out AMDYES
Ausgang
Empty
Diese Frage kann den Stapelcontainer von C++ verwenden. Der Punkt, der beachtet werden muss, ist, dass die endgültige Ausgabe nicht darin besteht, den Ausgabestapel zu durchlaufen, und dann auf mehrere Schnittstellen des unteren Stapels zu achten.
Konstrukteur:
* `stack<T> stk;` //Stack wird durch die Template-Klasse implementiert, die Standardkonstruktionsform des Stack-Objekts
* `stack(const stack &stk);` //Konstruktor kopieren
Zuweisungsvorgang:
* `stack& Operator=(const stack &stk);` // überladener Gleichheitszeichenoperator
Datenzugriff:
* `push(elem);` //Fügen Sie ein Element oben im Stapel hinzu
* `pop();` //Entfernen Sie das erste Element oben im Stapel
* `top();` //Gib den Anfang zurück Element des Stapels
Größe Betrieb:
* `empty();` //beurteilt, ob der Stapel leer ist
* `size(); ` //gibt die Größe des Stapels zurück
So mache ich es:
#include <iostream>
using namespace std;
#include <stack>
#include <string>
stack<string> cloth;
int main()
{
// 请在此输入您的代码
int N;
string flag,name;
cin >> N;
for(int i=1;i<=N;i++)
{
cin >> flag;
if(flag=="in")
{
cin >> name;
cloth.push(name);
}else if(flag=="out")
{
cin >> name;
while(cloth.top()!= name)
{
cloth.pop();
}
cloth.pop();
}
}
if(cloth.empty())
{
cout << "Empty"<<endl;
}else
{
cout << cloth.top() <<endl;
}
return 0;
}