def fix_brackets(s):
if not s: # Обработка пустой строки
return "Input string is empty. No brackets to fix."
open_count = 0 # Счетчик открывающих скобок
close_count = 0 # Счетчик закрывающих скобок
for char in s:
if char == '(':
open_count += 1
elif char == ')':
if open_count > 0:
open_count -= 1
else:
close_count += 1
# Добавляем закрывающие скобки в конец и открывающие в начало
return '(' * close_count + s + ')' * open_count
def count_brackets(s):
open_count = s.count('(')
close_count = s.count(')')
return open_count, close_count
def are_brackets_balanced(s):
balance = 0
for char in s:
if char == '(':
balance += 1
elif char == ')':
balance -= 1
if balance < 0:
return False
return balance == 0
def incorrect_bracket_count(s):
open_count = 0
close_count = 0
incorrect = 0
for char in s:
if char == '(':
open_count += 1
elif char == ')':
if open_count > 0:
open_count -= 1
else:
incorrect += 1
incorrect += open_count # Оставшиеся открывающие скобки также неверные
return incorrect
def formatted_output(s):
fixed = fix_brackets(s)
open_count, close_count = count_brackets(s)
balanced = are_brackets_balanced(s)
incorrect_count = incorrect_bracket_count(s)
result = (
f"Original string: {s}\n"
f"Fixed string: {fixed}\n"
f"Open brackets: {open_count}, Close brackets: {close_count}\n"
f"Are brackets balanced? {'Yes' if balanced else 'No'}\n"
f"Incorrect bracket count: {incorrect_count}"
)
return result
# Пример использования
input_string = "(()))"
result = formatted_output(input_string)
print(result)
def balance_brackets(s: str) -> str:
balance = 0 # Текущий баланс скобок
additions_start = 0 # Количество дополнительных открывающих скобок, которые нужно добавить в начало
additions_end = 0 # Количество дополнительных закрывающих скобок, которые нужно добавить в конец
for char in s:
if char == '(':
balance += 1
elif char == ')':
balance -= 1
# Если balance отрицательный, значит есть недостающая открывающая скобка
if balance < 0:
additions_start += 1
balance = 0
# В конце balance будет количеством недостающих закрывающих скобок
additions_end = balance
# Формируем новую строку с добавленными скобками
new_string = '(' * additions_start + s + ')' * additions_end
return new_string
# Запрос ввода у пользователя
input_string = input("Введите строку с круглыми скобками: ")
# Обработка введенной строки
balanced_string = balance_brackets(input_string)
print(f"Строка после добавления недостающих скобок: {balanced_string}")
Результат должен быть минимальной длины. Не добавляйте ненужные скобки.
Входными данными будет строка различной длины, содержащая только символы «(» и/или «)».