Herzlich willkommen in der Delphi-PRAXiS, r00t.
Vielleicht habe ich dein Problem ja falsch verstanden, aber wenn jede Zeile das gleiche Muster repräsentiert und jede Stelle über einen voting process festgelegt werden soll, dann braucht es eine frequency table für jede Position der Zeichenkette. Ich könnte mir das dann so vorstellen:
Delphi-Quellcode:
program Muster;
{$APPTYPE CONSOLE}
uses
Classes,
SysUtils;
const
NCHARS = 5;
FILLER = '_';
type
TFreq = array [Char] of Integer;
TFreqList = array of TFreq;
var
s: String;
i: Integer;
fl: TFreqList;
function MostFrequentChar(f: TFreq): Char;
var
c: Char;
iMax: Integer;
begin
iMax := 0;
for c := #0 to #255 do
if (f[c] > iMax) and (c <> FILLER) then
begin
Result := c;
iMax := f[c];
end;
end;
begin
AssignFile(input, ParamStr(1));
Reset(input);
SetLength(fl, NCHARS);
while not Eof do
begin
ReadLn(s);
// Das geht auch eleganter - Danke Hagen.
// if Length(s) <> NCHARS then
// Continue
// else
if Length(s) = NCHARS then
for i := 1 to NCHARS do
Inc(fl[Pred(i)][s[i]]);
end;
CloseFile(input);
SetLength(s, NCHARS);
for i := 1 to NCHARS do
s[i] := MostFrequentChar(fl[Pred(i)]);
WriteLn(s);
end.
Freundliche Grüße vom marabu