You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
这道题的关键其实就是**单词 word 中的每一个字母都可以在谜面 puzzle 中找到**,所有的重复计算都是基于此产生的。这句话的含义其实就是**word 中字符组成的集合是 puzzble 中组成的集合的子集**。
105
+
这道题的关键其实就是**单词 word 中的每一个字母都可以在谜面 puzzle 中找到**,所有的重复计算都是基于此产生的。这句话的含义其实就是**word 中字符组成的集合是 puzzle 中组成的集合的子集**。
106
106
107
107
基于上面两条重要信息,我们可以初步锁定算法为:
108
108
109
109
- 用二进制表示 puzzle
110
-
- 枚举 puzzble 的所有子集(二进制子集枚举)
110
+
- 枚举 puzzle 的所有子集(二进制子集枚举)
111
111
- 判断所有子集 j 是否在 words 中出现过。如果出现过,则将计数器累加出现的次数。这提示我们同样将 word 使用二进制进行存储。虽然 words[i] 的长度范围比较大([4,50]),但我们关心的其实是**去重的子集**。注意到 words[i] 的取值范围是小写字符,因此这个范围不大于 26,使用 int 存储完全够了。
0 commit comments