Das Thema ist „Klammerabgleich“
Die Antwort in meinem Kopf ist einfach:
Schiebe einfach die öffnende Klammer auf den Stapel, und wenn du auf die schließende Klammer triffst, lass sie raus.
Nachdem ich meinen Code fertiggestellt habe, sende ich ihn an das Online-Bewertungssystem unserer Schule.
Nur erhalten 9 von 10 Fragen wurden korrigiert.
Hier ist mein C++-Code
Gibt es eine Situation, die ich in diesem Code übersehen habe?? Vielen Dank an alle!
Frage
Die Frage ist, dass eine Ganzzahl N < 1000 eingegeben werden soll, was bedeutet, dass die Testfälle
und die folgenden N Zeichenfolgen mit einer Länge < 1000 getestet werden sollten, ob es sich um eine gültige Zeichenfolge handelt.
Wenn ja, geben Sie Case N(von 1~N) aus: Ja
Nein, geben Sie Case aus N(von 1~N): Nein
String darf Zeilenumbruchzeichen enthalten
Code: Select all
#Test cases
Input
2
[][]()[{}]
}
Output
Case 1: Yes
Case 2: No
Code: Select all
#include
#include
using namespace std;
class PARENTHE
{
public:
PARENTHE(int slength);
~PARENTHE();
int StackSize() const;
bool StackEmpty() const;
char top() const;
void Push(const char);
void Pop();
private:
char *str;
int slength;
int stop;
};
PARENTHE::PARENTHE(int slength)
{
str = new char [slength];
stop = -1;
}
PARENTHE::~PARENTHE()
{ delete [] str; }
inline int PARENTHE::StackSize() const
{ return stop+1; }
inline bool PARENTHE::StackEmpty() const
{
return (stop == -1);
}
inline char PARENTHE::top() const
{ return str[stop]; }
void PARENTHE::Push(const char c)
{
str[++stop] = c;
}
void PARENTHE::Pop()
{
stop--;
}
int main()
{
int t;
while( cin>>t )
{
int i = 0;
while( i < t )
{
string temp;
cin>>temp;
if(temp == "\n")
{
cout
Mobile version