Сейчас я работаю над своим первым домашним заданием по структуре данных.
Тема: «Сопоставление круглых скобок»
Ответ, по моему мнению, прост:
просто поместите открывающую скобку в стек, и когда вы встретите закрывающую скобку, она выскочит.
После завершения моего кода я отправляю его в онлайн-систему оценки нашей школы
Наберите только 9 правильных ответов из 10 вопросов.
Вот мой код на C++
Есть ли какая-то ситуация, которую я пропустил в этом коде?? Спасибо всем!
Вопрос
Вопрос в том, что нужно ввести целое число N < 1000, что означает, что тестовые примеры
и последующие N строк длиной < 1000 должны быть проверены, если это допустимая строка.
Если да, выведите Case N(from 1~N): Yes
No , выведите Case N(from 1~N):Нет.
строка может содержать символ новой строки.
#Test cases
Input
2
[][]()[{}]
}
Output
Case 1: Yes
Case 2: No
Решение
#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
Подробнее здесь: https://stackoverflow.com/questions/225 ... ching-in-c