首页 > 其他 > 详细

Leetcode-5176 Number of Valid Words for Each Puzzle(猜字谜)

时间:2019-09-01 15:07:44      阅读:273      评论:0      收藏:0      [点我收藏+]
 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 };

 

Leetcode-5176 Number of Valid Words for Each Puzzle(猜字谜)

原文:https://www.cnblogs.com/Asurudo/p/11442047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!