How to check if two equal-length strings are at least 50% equal in Pascal

1 Answer

0 votes
program CompareStrings;

function AtLeastHalfEqual(const s1, s2: string): boolean;
var
  i, matches, len: integer;
begin
  { Check for nil-equivalent and equal length }
  len := length(s1);
  if (len = 0) or (len <> length(s2)) then
  begin
    AtLeastHalfEqual := false;
    exit;
  end;

  matches := 0;

  for i := 1 to len do
    if s1[i] = s2[i] then
      inc(matches);

  { matches / len >= 0.5  →  2 * matches >= len }
  AtLeastHalfEqual := (matches * 2 >= len);
end;

var
  str1, str2: string;

begin
  writeln(AtLeastHalfEqual('abcde', 'axcfz')); 
    
  writeln(AtLeastHalfEqual('javascript c# c++ c python', 'javascript c# r c rust sql')); 
end.



(*
run:

FALSE
TRUE

*)

 



answered Dec 20, 2025 by avibootz
edited Dec 21, 2025 by avibootz

Related questions

...