41 lines
838 B
ObjectPascal
41 lines
838 B
ObjectPascal
program BestShuffleDemo(output);
|
|
|
|
function BestShuffle(s: string): string;
|
|
|
|
var
|
|
tmp: char;
|
|
i, j: integer;
|
|
t: string;
|
|
begin
|
|
t := s;
|
|
for i := 1 to length(t) do
|
|
for j := 1 to length(t) do
|
|
if (i <> j) and (s[i] <> t[j]) and (s[j] <> t[i]) then
|
|
begin
|
|
tmp := t[i];
|
|
t[i] := t[j];
|
|
t[j] := tmp;
|
|
end;
|
|
BestShuffle := t;
|
|
end;
|
|
|
|
const
|
|
original: array[1..6] of string =
|
|
('abracadabra', 'seesaw', 'elk', 'grrrrrr', 'up', 'a');
|
|
|
|
var
|
|
shuffle: string;
|
|
i, j, score: integer;
|
|
|
|
begin
|
|
for i := low(original) to high(original) do
|
|
begin
|
|
shuffle := BestShuffle(original[i]);
|
|
score := 0;
|
|
for j := 1 to length(shuffle) do
|
|
if original[i][j] = shuffle[j] then
|
|
inc(score);
|
|
writeln(original[i], ', ', shuffle, ', (', score, ')');
|
|
end;
|
|
end.
|