program ideone;
{$mode objfpc}{$H+}
function MultiCharsCountAsString( AInput: array of AnsiChar) : AnsiString ;
const
COUNTED_CHAR_VALUE = AnsiChar( #32 ) ;
var
intCharToken, intCounterToken, intCharCount: Integer ;
begin
Result : = '' ;
WriteLn ( ' "' , AnsiString ( AInput) , '"' #10 ) ;
for intCharToken : = Low( AInput) to High( AInput) do
if AInput[ intCharToken] <> COUNTED_CHAR_VALUE then
begin
intCharCount : = 1 ;
for intCounterToken : = intCharToken + 1 to High( AInput) do
if AInput[ intCharToken] = AInput[ intCounterToken] then
begin
Inc( intCharCount) ;
AInput[ intCounterToken] : = COUNTED_CHAR_VALUE;
end ;
if intCharCount > 1 then
Result += AInput[ intCharToken] ;
WriteLn ( intCharToken: 3 , ': "' , AnsiString ( AInput) , '" | ' , Result) ;
end ;
end ;
const
STRING_TO_TEST = AnsiString ( 'aabbcdeffaacggghijjjkb' ) ;
var
strResult: AnsiString ;
begin
strResult : = MultiCharsCountAsString( STRING_TO_TEST) ;
Write ( #10 , 'Result: "' , strResult, '"' ) ;
ReadLn ;
end .
cHJvZ3JhbSBpZGVvbmU7Cgp7JG1vZGUgb2JqZnBjfXskSCt9CgogIGZ1bmN0aW9uIE11bHRpQ2hhcnNDb3VudEFzU3RyaW5nKEFJbnB1dDogYXJyYXkgb2YgQW5zaUNoYXIpOiBBbnNpU3RyaW5nOwogIGNvbnN0CiAgICBDT1VOVEVEX0NIQVJfVkFMVUUgPSBBbnNpQ2hhcigjMzIpOwogIHZhcgogICAgaW50Q2hhclRva2VuLCBpbnRDb3VudGVyVG9rZW4sIGludENoYXJDb3VudDogSW50ZWdlcjsKICBiZWdpbgogICAgUmVzdWx0IDo9ICcnOwogICAgV3JpdGVMbignICAgICAiJywgQW5zaVN0cmluZyhBSW5wdXQpLCAnIicjMTApOwoKICAgIGZvciBpbnRDaGFyVG9rZW4gOj0gTG93KEFJbnB1dCkgdG8gSGlnaChBSW5wdXQpIGRvCiAgICAgIGlmIEFJbnB1dFtpbnRDaGFyVG9rZW5dIDw+IENPVU5URURfQ0hBUl9WQUxVRSB0aGVuCiAgICAgIGJlZ2luCiAgICAgICAgaW50Q2hhckNvdW50IDo9IDE7CgogICAgICAgIGZvciBpbnRDb3VudGVyVG9rZW4gOj0gaW50Q2hhclRva2VuICsgMSB0byBIaWdoKEFJbnB1dCkgZG8KICAgICAgICAgIGlmIEFJbnB1dFtpbnRDaGFyVG9rZW5dID0gQUlucHV0W2ludENvdW50ZXJUb2tlbl0gdGhlbgogICAgICAgICAgYmVnaW4KICAgICAgICAgICAgSW5jKGludENoYXJDb3VudCk7CiAgICAgICAgICAgIEFJbnB1dFtpbnRDb3VudGVyVG9rZW5dIDo9IENPVU5URURfQ0hBUl9WQUxVRTsKICAgICAgICAgIGVuZDsKCiAgICAgICAgaWYgaW50Q2hhckNvdW50ID4gMSB0aGVuCiAgICAgICAgICBSZXN1bHQgKz0gQUlucHV0W2ludENoYXJUb2tlbl07CgogICAgICAgIFdyaXRlTG4oaW50Q2hhclRva2VuOjMsICc6ICInLCBBbnNpU3RyaW5nKEFJbnB1dCksICciIHwgJywgUmVzdWx0KTsKICAgICAgZW5kOwogIGVuZDsKCmNvbnN0CiAgU1RSSU5HX1RPX1RFU1QgPSBBbnNpU3RyaW5nKCdhYWJiY2RlZmZhYWNnZ2doaWpqamtiJyk7CnZhcgogIHN0clJlc3VsdDogQW5zaVN0cmluZzsKYmVnaW4KICBzdHJSZXN1bHQgOj0gTXVsdGlDaGFyc0NvdW50QXNTdHJpbmcoU1RSSU5HX1RPX1RFU1QpOwogIFdyaXRlKCMxMCwgJ1Jlc3VsdDogIicsIHN0clJlc3VsdCwgJyInKTsKICBSZWFkTG47CmVuZC4K