Class WordFilter

java.lang.Object
g0701_0800.s0745_prefix_and_suffix_search.WordFilter

public class WordFilter extends java.lang.Object
745 - Prefix and Suffix Search.

Hard

Design a special dictionary with some words that searchs the words in it by a prefix and a suffix.

Implement the WordFilter class:

  • WordFilter(string[] words) Initializes the object with the words in the dictionary.
  • f(string prefix, string suffix) Returns the index of the word in the dictionary, which has the prefix prefix and the suffix suffix. If there is more than one valid index, return the largest of them. If there is no such word in the dictionary, return -1.

Example 1:

Input

[“WordFilter”, “f”]

["apple", [“a”, “e”]]

Output: [null, 0]

Explanation:

 WordFilter wordFilter = new WordFilter(["apple"]); 
 wordFilter.f("a", "e"); // return 0, because the word at index 0 has prefix = "a" and suffix = 'e".

Constraints:

  • 1 <= words.length <= 15000
  • 1 <= words[i].length <= 10
  • 1 <= prefix.length, suffix.length <= 10
  • words[i], prefix and suffix consist of lower-case English letters only.
  • At most 15000 calls will be made to the function f.
  • Constructor Summary

    Constructors
    Constructor
    Description
    WordFilter(java.lang.String[] words)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    f(java.lang.String prefix, java.lang.String suffix)
     
    void
    insert(java.lang.String wd, int weight)
     
    int
    startsWith(java.lang.String pref)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • WordFilter

      public WordFilter(java.lang.String[] words)
  • Method Details

    • insert

      public void insert(java.lang.String wd, int weight)
    • f

      public int f(java.lang.String prefix, java.lang.String suffix)
    • startsWith

      public int startsWith(java.lang.String pref)