Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,844 questions

55,671 answers

573 users

How to merge two strings based on shared suffix and prefix in Pascal

1 Answer

0 votes
program MergeOnOverlapProgram;

function MergeOnOverlap(a, b: string): string;
var
  lenA, lenB, maxPossibleOverlapLen, overlap, i: Integer;
  match: Boolean;
begin
  lenA := Length(a);
  lenB := Length(b);

  if lenA < lenB then
    maxPossibleOverlapLen := lenA
  else
    maxPossibleOverlapLen := lenB;

  overlap := 0;

  { try longest overlap first }
  for i := maxPossibleOverlapLen downto 1 do
  begin
    match := Copy(a, lenA - i + 1, i) = Copy(b, 1, i);
    if match then
    begin
      overlap := i;
      Break;
    end;
  end;

  { result = a + (b minus overlap) }
  MergeOnOverlap := a + Copy(b, overlap + 1, lenB - overlap);
end;

var
  s: string;
begin
  s := MergeOnOverlap(
         'fantasy time travel technology',
         'technology extraterrestrial life'
       );
  WriteLn(s);
end.



(*
run:

fantasy time travel technology extraterrestrial life

*)

 



answered Jan 23 by avibootz
edited Jan 23 by avibootz
...