diff options
Diffstat (limited to 'search_suggestion_sys.cpp')
-rw-r--r-- | search_suggestion_sys.cpp | 26 |
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; + } +}; |