В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
mokovanins
mokovanins
25.07.2022 01:37 •  Информатика

Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0.
В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число –1. Нумерация позиций символов начинается с 1.

с

Показать ответ
Ответ:
Danila251008
Danila251008
23.01.2021 00:04

#include <iostream>

using namespace std;

int main() {

string str;

cin >> str;

int count = 0, last_open = 0;

char open = '(', closed = ')';

for (int i = 0; i < str.size() and count >= 0; ++i){

 if (str[i] == open){

  ++count;

  last_open = i + 1;

 }

 else if (str[i] == closed)

  --count;

}

if (count < 0)

 cout << -1;

 

else if (count > 0)

 cout << last_open;

 

else

 cout << 0;

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота