aboutsummaryrefslogtreecommitdiff
path: root/search_suggestion_sys.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'search_suggestion_sys.cpp')
-rw-r--r--search_suggestion_sys.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/search_suggestion_sys.cpp b/search_suggestion_sys.cpp
new file mode 100644
index 0000000..404c987
--- /dev/null
+++ b/search_suggestion_sys.cpp
@@ -0,0 +1,26 @@
+#include "leetcode.h"
+#include <vector>
+
+class Solution {
+public:
+ vector<vector<string>> suggestedProducts(vector<string> &products,
+ string searchWord) {
+ auto it = products.begin();
+ sort(it, products.end());
+ vector<vector<string>> ans;
+ string curr = "";
+ for (char c : searchWord) {
+ curr += c;
+ vector<string> suggested;
+ it = lower_bound(it, products.end(), curr);
+ for (int i = 0; i < 3 && it + i != products.end(); i++) {
+ string &s = *(it + i);
+ if (s.find(curr))
+ break;
+ suggested.push_back(s);
+ }
+ ans.push_back(suggested);
+ }
+ return ans;
+ }
+};