aboutsummaryrefslogtreecommitdiff
path: root/prefix_suffix_search.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'prefix_suffix_search.cpp')
-rw-r--r--prefix_suffix_search.cpp26
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;
+};