finds the longest sequence of contiguous or disjoint elements common to the strings or lists s1 and s2 and returns their positions.

Details and Options

  • LongestCommonSequencePositions[s1,s2] returns an expression of the form {pos1,pos2} where the posi specify the positions of the longest common sequence in the strings or lists si.
  • For lists si, Take[si,posi] returns the longest common sequence. For strings si, StringTake[si,posi] returns the longest common contiguous or disjoint substring.
  • If there are several common sequences of the same length, LongestCommonSequencePositions returns the one that begins earliest in s1.
  • For strings, setting the option IgnoreCase->True makes LongestCommonSequencePositions treat lowercase and uppercase letters as equivalent, and returns the form of common sequence that occurs in s1.


open allclose all

Basic Examples  (2)

Find the longest noncontiguous sequence common to two strings:

Find the longest noncontiguous sequence common to two lists:

Scope  (2)

Act on two strings:

Act on two lists of expressions:

Options  (1)

IgnoreCase  (1)

By default, LongestCommonSequencePositions distinguishes lower and upper case:

Ignore case:

Properties & Relations  (1)

Take two strings:

Find the positions of the longest common sequence of characters:

The corresponding strings coincide:

LongestCommonSequence returns those strings joined:

SequenceAlignment returns a complete representation of the common and uncommon parts:

Introduced in 2015