Текст (например, арифметическое выражение) содержит многократно вложенные круглые скобки. исправить его, оставив скобки первого уровня круглыми, второго – заменить на квадратные, третьего и последующих – на фигурные. убедиться в корректности использования скобок. пример. ln(sin((a+b)c-d)) заменить выражением ln{sin[(a+b)c-d]}.
250
258
Ответы на вопрос:
//pascalabc.net 3.1 сборка 1239 var brackets: array [0..2, 0..1] of char : = (('{', '}'), ('[', ']'), ('(', ')')); begin var s : = readlnstring(); var counter : = 0; var max_depth : = 0; for var i : = 1 to s.length do begin if s[i] = '(' then counter += 1 else if s[i] = ')' then counter -= 1 else continue; if counter < 0 then begin writeln('brackets error'); halt; end; if counter > max_depth then max_depth : = counter; end; counter : = 0; for var i : = 1 to s.length do begin if s[i] = '(' then counter += 1 else if s[i] = ')' then counter -= 1 else continue; if (counter = max_depth - 1) and (s[i] = '(') then s[i] : = brackets[1, 0] else if (counter = max_depth - 2) and (s[i] = ')') then s[i] : = brackets[1, 1] else if (counter = max_depth - 2) and (s[i] = '(') then s[i] : = brackets[0, 0] else if (counter = max_depth - 3) and (s[i] = ')') then s[i] : = brackets[0, 1]; end; writeln(s); end.
Популярно: Информатика
-
angelenok184026.09.2021 14:29
-
Ilay6422.02.2021 02:50
-
alexfuerte0728.05.2021 18:01
-
imranio22.09.2021 20:26
-
Madgik200012.08.2020 01:22
-
AlinaRoz21.05.2022 09:16
-
Aslihaaan17.02.2020 01:38
-
7Alsu25.04.2021 07:17
-
davidpizhuk1345678916.06.2023 16:45
-
АйданкаТоктогулова23.05.2023 10:38