zoukankan      html  css  js  c++  java
  • Leetcode-5176 Number of Valid Words for Each Puzzle(猜字谜)

     1 #define _for(i,a,b) for(int i = (a);i < b;i ++)
     2 #define _rep(i,a,b) for(int i = (a);i > b;i --)
     3 class Solution
     4 {
     5     public:
     6         vector<int> findNumOfValidWords(vector<string>& words, vector<string>& puzzles)
     7         {
     8             map<int,int> m;
     9             _for(i,0,words.size())
    10             {
    11                 int st = 0;
    12                 int cnt = 0;
    13                 _for(j,0,words[i].size())
    14                     st |= 1<<words[i][j]-'a';
    15                 m[st] ++;
    16             }
    17             vector<int> vV;
    18 
    19             _for(i,0,puzzles.size())
    20             {
    21                 int sup = 0;
    22                 int rnt = 0;
    23                 _for(j,0,puzzles[i].size())
    24                     sup |= 1<<puzzles[i][j]-'a';
    25                 int sub = sup;
    26                 do
    27                 {
    28                     if((sub & (1<<puzzles[i][0]-'a')))
    29                         rnt += m[sub];
    30                     sub = (sub-1) & sup;
    31                 }
    32                 while(sub != sup);   // 处理完之后 会有 -1&sup = sup
    33                 vV.push_back(rnt);
    34             }
    35             return vV;
    36         }
    37 };
  • 相关阅读:
    Grakn Forces 2020 I. Bitwise Magic
    October Challenge 2020 Division 1
    杂题
    杂题
    杂题
    hdu 6868
    Codeforces Round #673 (Div. 1)
    杂题
    2019 ICPC World Finals K
    【CSP2019】括号树 题解(递推+链表)
  • 原文地址:https://www.cnblogs.com/Asurudo/p/11442047.html
Copyright © 2011-2022 走看看