Problem
Ask
Submissions

Problem: Longest Common Suffix Queries

Medium
30 min
Explore how to use trie data structures to efficiently determine the longest common suffix for query strings against a container of words. This lesson helps you implement strategies to choose the best matching strings based on suffix length, word length, and order.

Statement

You are given two arrays of strings, wordsContainer and wordsQuery.

For each string wordsQuery[i], find the string in wordsContainer that shares the longest common suffix with it.

  • If multiple strings in wordsContainer share the same longest suffix, choose the one with the smallest length.

  • If two or more such strings have the same smallest length, choose the string that appears earliest in wordsContainer.

Return an array of integers ans, where ans[i] is the index of the chosen string in wordsContainer for the query wordsQuery[i].

Constraints:

  • 11 \leq wordsContainer.length, wordsQuery.length 104\leq 10^4

  • 11 \leq wordsContainer[i].length 5103\leq 5 * 10^3

  • 11 \leq wordsQuery[i].length 5103\leq 5 * 10^3

  • wordsContainer[i] consists only of lowercase English letters.

  • wordsQuery[i] consists only of lowercase English letters.

  • Sum of wordsContainer[i].length is, at most 51055 * 10^5.

  • Sum of wordsQuery[i].length is, at most 51055 * 10^5.

Problem
Ask
Submissions

Problem: Longest Common Suffix Queries

Medium
30 min
Explore how to use trie data structures to efficiently determine the longest common suffix for query strings against a container of words. This lesson helps you implement strategies to choose the best matching strings based on suffix length, word length, and order.

Statement

You are given two arrays of strings, wordsContainer and wordsQuery.

For each string wordsQuery[i], find the string in wordsContainer that shares the longest common suffix with it.

  • If multiple strings in wordsContainer share the same longest suffix, choose the one with the smallest length.

  • If two or more such strings have the same smallest length, choose the string that appears earliest in wordsContainer.

Return an array of integers ans, where ans[i] is the index of the chosen string in wordsContainer for the query wordsQuery[i].

Constraints:

  • 11 \leq wordsContainer.length, wordsQuery.length 104\leq 10^4

  • 11 \leq wordsContainer[i].length 5103\leq 5 * 10^3

  • 11 \leq wordsQuery[i].length 5103\leq 5 * 10^3

  • wordsContainer[i] consists only of lowercase English letters.

  • wordsQuery[i] consists only of lowercase English letters.

  • Sum of wordsContainer[i].length is, at most 51055 * 10^5.

  • Sum of wordsQuery[i].length is, at most 51055 * 10^5.