program LongestCommonPrefix;
function LongestCommonPrefix(arr: array of string): string;
var
i, j: Integer;
prefix: string;
begin
if Length(arr) = 0 then
Exit('');
prefix := arr[0]; // Assume the first string is the initial prefix
for i := 1 to High(arr) do
begin
j := 1;
// Compare characters of prefix and the current string
while (j <= Length(prefix)) and (j <= Length(arr[i])) and (prefix[j] = arr[i][j]) do
Inc(j);
// Update the prefix to the common part
prefix := Copy(prefix, 1, j - 1);
if prefix = '' then
Break; // Exit loop if there's no common prefix
end;
LongestCommonPrefix := prefix;
end;
var
stringsArr: array of string;
begin
// Initialize the dynamic array properly
SetLength(stringsArr, 3); // Specify size of the array
stringsArr[0] := 'cartography';
stringsArr[1] := 'carburettor';
stringsArr[2] := 'carbonating';
WriteLn('Longest Common Prefix: ', LongestCommonPrefix(stringsArr));
end.
(*
run:
Longest Common Prefix: car
*)