Практическая работа №6
ПСП – правильная скобочная последовательность – последовательность из открывающих «(« и закрывающих «)» круглых скобок. Программа содержит две функции:
- Первая функция. Проверяет, является ли полученная строка ПСП.
- Вторая функция. При заключении что строке не ПСП, находит количество изменений, чтобы получить ПСП из полученной строки.
Оглавление
Функция is_cbs
Функция is_cbs проверяет, является ли полученная строка ПСП. При заключении, что полученная строка ПСП функция возвращает 1, в противном случае 0. Код функции:
', '()', '{}', '[]'] while any(x in string_to_check for x in brackets): for bracket_parts in brackets: string_to_check = string_to_check.replace(bracket_parts, '') return not string_to_check">
def is_cbs(string_to_check: str) -> int: """ Функция проверяет, является ли полученная строка ПСП :param string_to_check: Полученная строка :return:string_to_check При заключении, что полученная строка ПСП, функция возвращает 1, в противном случае 0 """ brackets = ['«»', '<>', '()', '{}', '[]'] while any(x in string_to_check for x in brackets): for bracket_parts in brackets: string_to_check = string_to_check.replace(bracket_parts, '') return not string_to_check
Функция need_to_move
Функция need_to_move находит количество изменений, необходимых для получения ПСП из полученной строки. Код функции:
', ')', '}', ']'] total = 0 temp = 0 for p in lisp_reference: if p in open_brackets: total += 1 elif p in close_brackets and total: total -= 1 else: temp += 1 return total + temp">
def need_to_move(lisp_reference: str) -> int: """ Функция находит количество изменений, чтобы получить ПСП из полученной строки. :param lisp_reference:Полученная строка :return: количество изменений, чтобы получить ПСП из полученной строки """ open_brackets = ['«', '<', '(', '{', '['] close_brackets = ['»', '>', ')', '}', ']'] total = 0 temp = 0 for p in lisp_reference: if p in open_brackets: total += 1 elif p in close_brackets and total: total -= 1 else: temp += 1 return total + temp
Вставка изображения
Для оформления этого файла был использован облегчённый язык разметки markdown.