Übungsfragen zum Blue Bridge Cup <Sloppy Garderobenstapel>

Themenbeschreibung

Die kleine schlampige MS.JinlinMS.Jinlin ist eine Prinzessin, die es liebt, sich schick zu machen. Er hat viele Abendkleider wie „ „ „ „ „ „ „ LALANIHAOMAund WOBUHAOviele NIHAOBUHAOandere 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, Emptywenn 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;
}

Guess you like

Origin blog.csdn.net/mc10141222/article/details/123697673