Подразделы

Другие разделы

Дата и время

07/02/2023 16:25:33

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

print2303. (стек) Расстановка скобок

print(стек) Расстановка скобок

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Существует структура STACK (определена в коде).
Строку с одинаковым количеством открывающих и закрывающих скобок соответственного типа и соблюдением их вложенности назовем правильной.
Требуется проверить входную строку на правильность.
Учесть следующие типы скобок: (), {}, [].

Воспользуйтесь следующим шаблоном:
#include <iostream>
#include <string>
#define MAXSTACKSIZE 100

using namespace std;

bool IsStringRight(string&); // прототип функции проверки

struct STACK{ // структура СТЕК
   char A[MAXSTACKSIZE]; // контейнер элементов
   int v; // индекс вершины стека
};

STACK S;

int main(){
   // Наальное состояние = Вершина стека = 0
   S.v = 0;
   
   string str;
   cin >> str; // ввод строки   
   if(IsStringRight(str)){
      cout << "String is \"right\"";
   }
   else {
      cout << "String is \"wrong\"";
   }   
   return 0;
}

bool IsStringRight(string& str){
// НАПИШИТЕ ЭТУ ФУНКЦИЮ
// ВОЗВРАЩАЕТ ИСТИНУ В СЛУЧАЕ, ЕСЛИ СТРОКА "ПРАВИЛЬНАЯ"
// ВОЗВРАЩАЕТ ЛОЖЬ, ЕСЛИ СТРОКА "НЕ ПРАВИЛЬНАЯ"
} 

Ввод
Строка типа string
Вывод
строка "String is right" или "String is wrong" (реализован в шаблоне).

Пример ввода

{([(())])}

Пример вывода

String is right

Пример ввода

((({})]

Пример вывода

String is wrong
loading