На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка – признак конца и в последовательность не входит). Проверить, правильно ли в данной последовательности расставлены круглые скобки (то есть, справа от каждой открывающей есть соответствующая закрывающая, а слева от каждой закрывающей есть соответствующая открывающая).
Алгоритм решения этой задачи может быть следующим:
Создать пустой стек, в который будем помещать открывающие скобки.Считывать символы из входной последовательности до тех пор, пока не встретится точка.Если считанный символ - открывающая скобка (‘(‘), поместить её в стек.Если считанный символ - закрывающая скобка (‘)‘), проверить, не пуст ли стек. Если стек пуст, значит скобки расставлены неправильно, программа должна вывести сообщение об ошибке и завершиться.Если стек не пуст, извлечь из него верхний элемент.Если извлеченная открывающая скобка не соответствует закрывающей скобке, программа должна вывести сообщение об ошибке и завершиться.Если все скобки расставлены верно и стек пуст после чтения всей последовательности, программа должна вывести сообщение о правильности расстановки скобок.
Пример кода на языке Python:
stack = [] s = input() for symbol in s: if symbol == '.': break if symbol == '(': stack.append('(') elif symbol == ')': if len(stack) == 0: print("Скобки расставлены неправильно") break if stack[-1] == '(': stack.pop() else: print("Скобки расставлены неправильно") break if len(stack) == 0: print("Скобки расставлены верно")
Этот код считывает символы из входной последовательности до точки, проверяет правильность расстановки скобок и выводит соответствующее сообщение.
Алгоритм решения этой задачи может быть следующим:
Создать пустой стек, в который будем помещать открывающие скобки.Считывать символы из входной последовательности до тех пор, пока не встретится точка.Если считанный символ - открывающая скобка (‘(‘), поместить её в стек.Если считанный символ - закрывающая скобка (‘)‘), проверить, не пуст ли стек. Если стек пуст, значит скобки расставлены неправильно, программа должна вывести сообщение об ошибке и завершиться.Если стек не пуст, извлечь из него верхний элемент.Если извлеченная открывающая скобка не соответствует закрывающей скобке, программа должна вывести сообщение об ошибке и завершиться.Если все скобки расставлены верно и стек пуст после чтения всей последовательности, программа должна вывести сообщение о правильности расстановки скобок.Пример кода на языке Python:
stack = []s = input()
for symbol in s:
if symbol == '.':
break
if symbol == '(':
stack.append('(')
elif symbol == ')':
if len(stack) == 0:
print("Скобки расставлены неправильно")
break
if stack[-1] == '(':
stack.pop()
else:
print("Скобки расставлены неправильно")
break
if len(stack) == 0:
print("Скобки расставлены верно")
Этот код считывает символы из входной последовательности до точки, проверяет правильность расстановки скобок и выводит соответствующее сообщение.