diff options
Diffstat (limited to 'prefix_suffix_search.cpp')
-rw-r--r-- | prefix_suffix_search.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/prefix_suffix_search.cpp b/prefix_suffix_search.cpp new file mode 100644 index 0000000..67d4d4f --- /dev/null +++ b/prefix_suffix_search.cpp @@ -0,0 +1,26 @@ +#include "leetcode.h" + +class WordFilter { +public: + WordFilter(vector<string> &words) { + int n = words.size(); + for (int i = 0; i < n; i++) { + string word = words[i]; + int wordSize = word.size(); + for (int j = 1; j <= wordSize; j++) { + string p = word.substr(0, j); + for (int k = 0; k < wordSize; k++) { + string s = word.substr(k, wordSize); + hashMap[p + '|' + s] = i + 1; + } + } + } + } + int f(string prefix, string suffix) { + string s = prefix + '|' + suffix; + return hashMap[s] - 1; + } + +private: + unordered_map<string, int> hashMap; +}; |