page_title: Longest repeated substring problem
hierarchical_section_title: Longest repeated substring problem
caption_attribution_description: English: A suffix tree of the letters ATCGATCGA$
context_page_description: In computer science, the longest repeated substring problem is the problem of finding the longest substring of a string that occurs at least twice.
  This problem can be solved in linear time and space by building a suffix tree for the string, and finding the deepest internal node in the tree. Depth is measured by the number of characters traversed from the root. The string spelled by the edges from the root to such a node is a longest repeated substring. The problem of finding the longest substring with at least occurrences can be solved by first preprocessing the tree to count the number of leaf descendants for each internal node, and then finding the deepest node with at least leaf descendants that have no children. To avoid overlapping repeats, you can check that the list of suffix lengths has no consecutive elements with less than prefix-length difference.
  In the figure with the string "ATCGATCGA$", the longest substring that repeats at least twice is "ATCGA".
context_section_description: In computer science, the longest repeated substring problem is the problem of finding the longest substring of a string that occurs at least twice.
  This problem can be solved in linear time and space  by building a suffix tree for the string (with a special end-of-string symbol like '$' appended), and finding the deepest internal node in the tree. Depth is measured by the number of characters traversed from the root. The string spelled by the edges from the root to such a node is a longest repeated substring. The problem of finding the longest substring with at least  occurrences can be solved by first preprocessing the tree to count the number of leaf descendants for each internal node, and then finding the deepest node with at least  leaf descendants that have no children. To avoid overlapping repeats, you can check that the list of suffix lengths has no consecutive elements with less than prefix-length difference.
  In the figure with the string "ATCGATCGA$", the longest substring that repeats at least twice is "ATCGA".
caption: A suffix tree of the letters ATCGATCGA$
exif: {}