Pas.0017. Напишите программу, которая определяет, является ли заданная строка супер мягким палиндромом. Пробелы, точки, запятые, тире не учитываются при определении палиндромности строки.
Сначала см. CS.0016.
Решение.program SuperLitePalindromeString; const TESTED_STRING = 'Я дядя, я дядя, я дядя, я дядя, я дядя, ...'; var left, right : integer; testedString, isPalindromeString : string; function isSkippedChar(c : char) : boolean; var skippedChars : string = ' .,—'; i : integer; isSkipped : boolean = false; begin i := 1; while (i <= length(skippedChars)) and (not isSkipped) do begin isSkipped := (c = skippedChars[i]); i := i + 1; end; isSkippedChar := isSkipped; end; begin testedString := TESTED_STRING; left := 1; right := length(testedString); isPalindromeString := ''; while (left < right) and (isPalindromeString = '') do begin if isSkippedChar(testedString[left]) then left := left + 1 else if isSkippedChar(testedString[right]) then right := right - 1 else if upcase(testedString[left]) <> upcase(testedString[right]) then isPalindromeString := 'не 'else begin left := left + 1; right := right - 1 end end; writeln('Строка «' + testedString + '» '); write(isPalindromeString + 'является супермягким палиндромом.'); end.Консоль.
Строка «Я дядя, я дядя, я дядя, я дядя, я дядя, ...» является супермягким палиндромом.