From 2a646ce90dd5204813ef9a5af2572ca9bdda0520 Mon Sep 17 00:00:00 2001 From: BrianLusina <12752833+BrianLusina@users.noreply.github.com> Date: Fri, 17 Apr 2026 09:53:24 +0300 Subject: [PATCH 1/2] feat(algorithms, trie, index pairs): index pairs of strings --- .../trie/index_pairs_of_a_string/README.md | 60 ++++++++++++++++++ .../trie/index_pairs_of_a_string/__init__.py | 31 +++++++++ .../index_pairs_of_a_string_example_1.png | Bin 0 -> 48607 bytes .../index_pairs_of_a_string_example_2.png | Bin 0 -> 46018 bytes .../index_pairs_of_a_string_example_3.png | Bin 0 -> 29166 bytes .../test_index_pairs_of_a_string.py | 33 ++++++++++ 6 files changed, 124 insertions(+) create mode 100644 algorithms/trie/index_pairs_of_a_string/README.md create mode 100644 algorithms/trie/index_pairs_of_a_string/__init__.py create mode 100644 algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_1.png create mode 100644 algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_2.png create mode 100644 algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_3.png create mode 100644 algorithms/trie/index_pairs_of_a_string/test_index_pairs_of_a_string.py diff --git a/algorithms/trie/index_pairs_of_a_string/README.md b/algorithms/trie/index_pairs_of_a_string/README.md new file mode 100644 index 00000000..2d8029ba --- /dev/null +++ b/algorithms/trie/index_pairs_of_a_string/README.md @@ -0,0 +1,60 @@ +# Index Pairs of a String + +Given a string text and an array of strings words, return a list of all index pairs [i, j] such that the substring +`text[i...j]` is present in words. + +Return the pairs [i, j] in a sorted order, first by the value of i, and if two pairs have the same i, by the value of j. + +## Constraints + +- 1 ≤ text.length ≤ 100 +- 1 ≤ words.length ≤ 20 +- 1 ≤ words[i].length ≤ 50 +- text and words[i] consist of lowercase English letters. +- All the strings of words are unique. + +## Examples + +![Example 1](./images/examples/index_pairs_of_a_string_example_1.png) +![Example 2](./images/examples/index_pairs_of_a_string_example_2.png) +![Example 3](./images/examples/index_pairs_of_a_string_example_3.png) + +## Solution + +The algorithm uses a trie to find all pairs of start and end indexes for substrings in a given text that match words +from a list. First, it builds the trie by inserting each word from the list. Then, it iterates over each starting index +in the text to match substrings using the trie. For each character sequence, it checks if the current character exists +in the trie and traverses accordingly. If a word’s end is found (marked by a flag), the start and end indexes of the +matched substring are recorded in the result. This method optimizes substring searching using the trie structure to +avoid redundant checks and efficiently match multiple words in the text. + +The algorithm to solve this problem is as follows: + +1. Insert each word from the list into the trie. Each character is added as a node, and isEndOfWord is set to mark the + end of a word. +2. Loop through each character in text (starting at index i). For each starting index, try to find substrings that match + words in the trie by traversing them. +3. For each character at position i, the algorithm begins traversing the trie from the root node. It then checks whether + each subsequent character (from index i to j) is a child node in the trie. If the character is found, the traversal + continues to the next character. A valid match has been found if the current node in the Trie marks the end of a word + (i.e., isEndOfWord is True). In that case, the index pair [i, j] is recorded, where i is the start index, and j is the + end index of the matched word. +4. After checking all starting indexes, return the list of index pairs representing matched words’ start and end positions. + +### Time Complexity + +Inserting n words of average length m into the trie takes O(n∗m). For each index i in text, we perform a search that +takes linear time in the length of the substring. This gives an overall time complexity of O(l∗k), where l is the length +of the text, and k is the average length of a word. + +### Space Complexity + +The space the trie uses depends on the number of characters in the list words. If there are n words with an average length +of m, the trie can take up to `O(n∗m)` space, assuming no overlapping prefixes among the words. In the worst case, if all +words are unique and have no shared prefixes, each character is stored separately. + +The result list stores the index pairs [i, j]. In the worst case, every possible substring of text could be a word in +the list words. This would result in `O(l^2)` pairs, where l is the length of the string text. So, the space complexity +for the result list is `O(l^2)` in the worst case. + +Thus, the overall space complexity is `O(n∗m+l^2)`. diff --git a/algorithms/trie/index_pairs_of_a_string/__init__.py b/algorithms/trie/index_pairs_of_a_string/__init__.py new file mode 100644 index 00000000..25332a23 --- /dev/null +++ b/algorithms/trie/index_pairs_of_a_string/__init__.py @@ -0,0 +1,31 @@ +from typing import List +from datastructures.trees.trie import Trie + +def index_pairs(text: str, words: List[str]) -> List[List[int]]: + trie = Trie() + + for word in words: + trie.insert(word) + + results = [] + + # loop through each character in the text + for idx, char in enumerate(text): + # start from the root of the Trie for each character in the text + node = trie.root + + # Check each possible substring starting from index idx + for j in range(idx, len(text)): + ch = text[j] + # If the character is not in the current Trie Node's children, stop searching + if ch not in node.children: + break + + # Move to the next node in the Trie + node = node.children[ch] + + # If we reach the end of a word, record the indices + if node.is_end: + results.append([idx, j]) + + return results diff --git a/algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_1.png b/algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_1.png new file mode 100644 index 0000000000000000000000000000000000000000..67d0e861e0ca105f4466134b6f6fb1e6b7f18f2a GIT binary patch literal 48607 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 literal 0 HcmV?d00001 diff --git a/algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_2.png b/algorithms/trie/index_pairs_of_a_string/images/examples/index_pairs_of_a_string_example_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4936419e6191c0fd8bf34d9f449ca62c66785a2f GIT binary patch literal 46018 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 L#Y$ejdH25nrMh2c literal 0 HcmV?d00001 diff --git a/algorithms/trie/index_pairs_of_a_string/test_index_pairs_of_a_string.py b/algorithms/trie/index_pairs_of_a_string/test_index_pairs_of_a_string.py new file mode 100644 index 00000000..3d7f9416 --- /dev/null +++ b/algorithms/trie/index_pairs_of_a_string/test_index_pairs_of_a_string.py @@ -0,0 +1,33 @@ +import unittest +from typing import List +from parameterized import parameterized +from algorithms.trie.index_pairs_of_a_string import index_pairs + +INDEX_PAIRS_OF_A_STRING = [ + ( + "thestoryofeducativeandme", + ["story", "feduc", "educative"], + [[3, 7], [9, 13], [10, 18]], + ), + ("xyxyx", ["xyx", "xy"], [[0, 1], [0, 2], [2, 3], [2, 4]]), + ("howareyou", ["how", "are", "you"], [[0, 2], [3, 5], [6, 8]]), + ("weather", ["weather"], [[0, 6]]), + ( + "aquickbrownfoxjumpsoverthelazydog", + ["quick", "fox", "dog"], + [[1, 5], [11, 13], [30, 32]], + ), +] + + +class IndexPairsOfAStringTestCase(unittest.TestCase): + @parameterized.expand(INDEX_PAIRS_OF_A_STRING) + def test_index_pairs_of_a_string( + self, text: str, words: List[str], expected: List[List[int]] + ): + actual = index_pairs(text, words) + self.assertEqual(expected, actual) + + +if __name__ == "__main__": + unittest.main() From ee4b9c48a9eb559dcd106f788ad91d9cc93454d4 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Fri, 17 Apr 2026 06:53:52 +0000 Subject: [PATCH 2/2] updating DIRECTORY.md --- DIRECTORY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 9310756b..8b368b28 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -426,6 +426,8 @@ * Smallest Range Covering K Lists * [Test Smallest Range Covering Elements From K Lists](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/top_k_elements/smallest_range_covering_k_lists/test_smallest_range_covering_elements_from_k_lists.py) * Trie + * Index Pairs Of A String + * [Test Index Pairs Of A String](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/trie/index_pairs_of_a_string/test_index_pairs_of_a_string.py) * Longest Word With Prefixes * [Test Longest Word With Prefixes](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/trie/longest_word_with_prefixes/test_longest_word_with_prefixes.py) * Topkfreqwords