М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Поэзия
Поэзия
20.03.2022 09:49 •  Информатика

Скобки Задана строка, в которой могут быть встречены 3 типа скобок: фигурные, квадратные и круглые. Помимо скобок в строке встречаются и другие последовательности символов. Вложенность скобок может быть произвольной. Необходимо проверить корректность скобочной записи: каждой открывающей скобке должна соответствовать следующая за ней закрывающая скобка того же типа на том же уровне вложенности, не должно быть открывающей или закрывающей скобки без пары.

Входные данные:

Строка, содержащая произвольный набор символов(в т.ч. и без скобок)

Выходные данные:

Программа должна вывести:

А) слово “correct”, если запись корректна или не содержит скобок Б) слово “incorrect”, если запись не корректна

Sample Input:

(this [is] test)
Sample Output:

correct
Напишите программу. Тестируется через stdin → stdout

Time Limit: 15 секунд
Memory Limit: 256 MB

👇
Ответ:
MaXIm0100742578
MaXIm0100742578
20.03.2022

a = input()

firs = 0

sec = 0

third = 0

for i in a:

   if(i == '{' or i == '}'):

       firs += 1

   elif (i == '(' or i == ')') :

       sec += 1

   elif(i == '[' or i == ']'):

       third += 1

if( (firs+sec+third) % 2 == 0 ):

   print('correct')

else:

   print('incorrect')

Объяснение:

из 10

4,4(78 оценок)
Ответ:
али426
али426
20.03.2022

a = input()

mas = []

answer = ""

test01 = "Incorrect"

test02 = "Incorrect"

def check():

   global mas

   global answer

   global test01

   global test02

   

   

   #Bad, but this test01 deleted

   

   

   #Second step for check

   for infinity in range(100):

       for i in range(len(mas)):

           try:

               m = i + 1

               if mas[i] == "[" and mas[m] == "]" or mas[i] == "{" and mas[m] == "}" or mas[i] == "(" and mas[m] == ")":

                   del mas[i]

                   del mas[i]

           except:

               pass

       if len(mas) == 0:

           test02 = "Correct"

           break

       else:

           test02 = "Incorrect"

   #End testing

   if test02 == "Correct":

       answer = "correct"

   else:

       answer = "incorrect"

for i in range(len(a)):

   if a[i] == "{":

       mas.append(a[i])

   if a[i] == "[":

       mas.append(a[i])

   if a[i] == "(":

       mas.append(a[i])

   if a[i] == "}":

       mas.append(a[i])

   if a[i] == "]":

       mas.append(a[i])

   if a[i] == ")":

       mas.append(a[i])

del a

del i

check()

print(answer)

Объяснение:

Благодарности не требую, все ради Вас отметить как лучшее решение

10/10

4,4(18 оценок)
Открыть все ответы
Ответ:
prisheplub
prisheplub
20.03.2022
Давай попробуем рассуждать логически.
Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.

Поэтому ответ: 1 * 2 * 2 * 2 * ... (десять двоек умножаются) = 2^10 = 1024 варианта садов. 

Думаю что так, если не напутал. Но ты лучше проверь за мной. 
4,4(78 оценок)
Ответ:
nastushka162003
nastushka162003
20.03.2022
Сначала надо избавиться от ошибок (пункт №3)
иначе не сможем выполнить 1 и 2 пункт задания.
  Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10;
  Исправляем N:N div 10; на N:= N div 10;
 
После исправления ошибок при вводе 537 получим 3
Программа будет работать правильно для любого числа,
у которого вторая цифра слева меньше первой цифры, например:
7193

Чтобы программа работала правильно для всех чисел надо
изменить это: while N > 10 do на while N > 0 do

После всех исправлений код программы стал таким:
var
  N, k: integer;
begin
  readln(N);
  k := 9;
  while N > 10 do
  begin
    if (N mod 10 < k) then k := N mod 10;
    N := N div 10;
  end;
  write(k)
end.
4,5(15 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ