aboutsummaryrefslogtreecommitdiff
path: root/num_valid_words_puzzle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'num_valid_words_puzzle.cpp')
-rw-r--r--num_valid_words_puzzle.cpp40
1 files changed, 0 insertions, 40 deletions
diff --git a/num_valid_words_puzzle.cpp b/num_valid_words_puzzle.cpp
deleted file mode 100644
index 9286280..0000000
--- a/num_valid_words_puzzle.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "leetcode.h"
-
-class Solution {
-public:
- vector<int> findNumOfValidWords(vector<string> &words,
- vector<string> &puzzles) {
- unordered_map<int, int> um;
- for (auto w : words)
- um[(mask(w))]++;
- vector<int> ans;
- for (auto p : puzzles) {
- int m = mask(p), s = m, first = (1 << p[0] - 'a'), curr = 0;
- while (s) {
- if (s & first)
- curr += um[s];
- s = (s - 1) & m;
- }
- ans.push_back(curr);
- }
- return ans;
- }
-
-private:
- int mask(string word) {
- int m = 0;
- for (auto w : word)
- m |= (1 << w - 'a');
- return m;
- }
-};
-
-int main() {
- Solution obj;
- vector<string> words = {"aaaa", "asas", "able", "ability",
- "actt", "actor", "access"};
- vector<string> puzzles = {"aboveyz", "abrodyz", "abslute",
- "absoryz", "actresz", "gaswxyz"};
- for (const auto &i : obj.findNumOfValidWords(words, puzzles))
- cout << i << endl;
-}