Вопрос задан 06.06.2023 в 09:30. Предмет Информатика. Спрашивает Пашков Никита.

Паскаль Дано рядок, що містить кілька круглих дужок. Якщо дужки розставлені правильно (тобто

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Неред Алина.

Код:

function CheckBrackets(s: string): integer;

var

 stack: string;

 i: integer;

begin

 stack := '';

 for i := 1 to Length(s) do

 begin

   if s[i] = '(' then

     stack := stack + '('

   else if s[i] = ')' then

   begin

     if stack = '' then

       Exit(i)

     else

       Delete(stack, Length(stack), 1);

   end;

 end;

 if stack = '' then

   Result := 0

 else

   Result := -1;

end;

Приклад використання:
var

 s: string;

 res: integer;

begin

 s := '()(())';

 res := CheckBrackets(s);

 if res = 0 then

   Writeln('Дужки розставлені правильно')

 else if res = -1 then

   Writeln('Не вистачає закриваючих дужок')

 else

   Writeln('Помилка на позиції ', res);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот решение на языке Python для данной задачи:

python
def check_brackets(string): stack = [] for i, char in enumerate(string): if char == '(': stack.append((char, i)) elif char == ')': if len(stack) == 0: return i stack.pop() if len(stack) == 0: return 0 else: return -1 # Пример использования: input_string = input("Введите строку со скобками: ") result = check_brackets(input_string) print(result)

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

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос