program ReplaceMultipleQuestionMarks;
function CompressQuestionMarks(const input: string): string;
var
i: Integer;
resultStr: string;
lastWasQuestionMark: Boolean;
begin
resultStr := '';
lastWasQuestionMark := False;
for i := 1 to Length(input) do
begin
if input[i] = '?' then
begin
if not lastWasQuestionMark then
begin
resultStr := resultStr + '?';
lastWasQuestionMark := True;
end;
// skip consecutive '?'
end
else
begin
resultStr := resultStr + input[i];
lastWasQuestionMark := False;
end;
end;
CompressQuestionMarks := resultStr;
end;
var
inputText: string;
begin
inputText := 'Hello??? How are you?? What is your Wi-Fi password????';
WriteLn('Processed: ', CompressQuestionMarks(inputText));
end.
(*
run:
Processed: Hello? How are you? What is your Wi-Fi password?
*)