{
  "authored_examples": [
    {
      "text": "banana",
      "sorted_suffix_indices": [
        5,
        3,
        1,
        0,
        4,
        2
      ],
      "suffixes": [
        "a",
        "ana",
        "anana",
        "banana",
        "na",
        "nana"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 5,
          "right_suffix_start": 3,
          "lcp": 1,
          "prefix": "a"
        },
        {
          "left_suffix_start": 3,
          "right_suffix_start": 1,
          "lcp": 3,
          "prefix": "ana"
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 0,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 0,
          "right_suffix_start": 4,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 4,
          "right_suffix_start": 2,
          "lcp": 2,
          "prefix": "na"
        }
      ],
      "longest_repeated_substring": "ana",
      "length": 3,
      "all_occurrence_starts": [
        1,
        3
      ]
    },
    {
      "text": "aaaa",
      "sorted_suffix_indices": [
        3,
        2,
        1,
        0
      ],
      "suffixes": [
        "a",
        "aa",
        "aaa",
        "aaaa"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 3,
          "right_suffix_start": 2,
          "lcp": 1,
          "prefix": "a"
        },
        {
          "left_suffix_start": 2,
          "right_suffix_start": 1,
          "lcp": 2,
          "prefix": "aa"
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 0,
          "lcp": 3,
          "prefix": "aaa"
        }
      ],
      "longest_repeated_substring": "aaa",
      "length": 3,
      "all_occurrence_starts": [
        0,
        1
      ]
    },
    {
      "text": "\u06a9\u0627\u0631\u06a9\u0627\u0631",
      "sorted_suffix_indices": [
        4,
        1,
        5,
        2,
        3,
        0
      ],
      "suffixes": [
        "\u0627\u0631",
        "\u0627\u0631\u06a9\u0627\u0631",
        "\u0631",
        "\u0631\u06a9\u0627\u0631",
        "\u06a9\u0627\u0631",
        "\u06a9\u0627\u0631\u06a9\u0627\u0631"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 4,
          "right_suffix_start": 1,
          "lcp": 2,
          "prefix": "\u0627\u0631"
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 5,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 5,
          "right_suffix_start": 2,
          "lcp": 1,
          "prefix": "\u0631"
        },
        {
          "left_suffix_start": 2,
          "right_suffix_start": 3,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 3,
          "right_suffix_start": 0,
          "lcp": 3,
          "prefix": "\u06a9\u0627\u0631"
        }
      ],
      "longest_repeated_substring": "\u06a9\u0627\u0631",
      "length": 3,
      "all_occurrence_starts": [
        0,
        3
      ]
    },
    {
      "text": "ababcdcd",
      "sorted_suffix_indices": [
        0,
        2,
        1,
        3,
        6,
        4,
        7,
        5
      ],
      "suffixes": [
        "ababcdcd",
        "abcdcd",
        "babcdcd",
        "bcdcd",
        "cd",
        "cdcd",
        "d",
        "dcd"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 0,
          "right_suffix_start": 2,
          "lcp": 2,
          "prefix": "ab"
        },
        {
          "left_suffix_start": 2,
          "right_suffix_start": 1,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 3,
          "lcp": 1,
          "prefix": "b"
        },
        {
          "left_suffix_start": 3,
          "right_suffix_start": 6,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 6,
          "right_suffix_start": 4,
          "lcp": 2,
          "prefix": "cd"
        },
        {
          "left_suffix_start": 4,
          "right_suffix_start": 7,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 7,
          "right_suffix_start": 5,
          "lcp": 1,
          "prefix": "d"
        }
      ],
      "longest_repeated_substring": "ab",
      "length": 2,
      "all_occurrence_starts": [
        0,
        2
      ]
    },
    {
      "text": "a a a",
      "sorted_suffix_indices": [
        3,
        1,
        4,
        2,
        0
      ],
      "suffixes": [
        " a",
        " a a",
        "a",
        "a a",
        "a a a"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 3,
          "right_suffix_start": 1,
          "lcp": 2,
          "prefix": " a"
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 4,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 4,
          "right_suffix_start": 2,
          "lcp": 1,
          "prefix": "a"
        },
        {
          "left_suffix_start": 2,
          "right_suffix_start": 0,
          "lcp": 3,
          "prefix": "a a"
        }
      ],
      "longest_repeated_substring": "a a",
      "length": 3,
      "all_occurrence_starts": [
        0,
        2
      ]
    },
    {
      "text": "",
      "sorted_suffix_indices": [],
      "suffixes": [],
      "adjacent_lcp": [],
      "longest_repeated_substring": "",
      "length": 0,
      "all_occurrence_starts": []
    },
    {
      "text": "a",
      "sorted_suffix_indices": [
        0
      ],
      "suffixes": [
        "a"
      ],
      "adjacent_lcp": [],
      "longest_repeated_substring": "",
      "length": 0,
      "all_occurrence_starts": []
    },
    {
      "text": "abcdef",
      "sorted_suffix_indices": [
        0,
        1,
        2,
        3,
        4,
        5
      ],
      "suffixes": [
        "abcdef",
        "bcdef",
        "cdef",
        "def",
        "ef",
        "f"
      ],
      "adjacent_lcp": [
        {
          "left_suffix_start": 0,
          "right_suffix_start": 1,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 1,
          "right_suffix_start": 2,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 2,
          "right_suffix_start": 3,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 3,
          "right_suffix_start": 4,
          "lcp": 0,
          "prefix": ""
        },
        {
          "left_suffix_start": 4,
          "right_suffix_start": 5,
          "lcp": 0,
          "prefix": ""
        }
      ],
      "longest_repeated_substring": "",
      "length": 0,
      "all_occurrence_starts": []
    }
  ],
  "all_binary_strings_length0_to7_oracles": 255,
  "invalid_inputs_rejected": [
    "True",
    "None",
    "'xxxxxxxxxxxxxxxxx'"
  ],
  "contract": "overlap allowed, tie longest then lexicographically smallest codepoint substring, all distinct starting positions; no whitespace normalization, byte/grapheme indexing or semantic similarity",
  "complexity": "bounded teaching suffix slices/sort plus naive LCP; not a linear-time suffix-array implementation or benchmark"
}
