力扣 1178 猜字謎 位運算 思維

2021-10-20 15:04:23 字數 750 閱讀 7780

思路:看完題目會發現關鍵點是乙個單詞**現的字元種類,和個數沒有關係,那麼我們可以用位運算表示某個單詞含有的字元種類。具體做法是,如果它含有小寫字母x

xx,我們就可以把它二進位制表示的第x−′

a′x-'a'

x−′a

′位置為1

11。這樣就將字串變成了整數,接下來構建乙個雜湊表,記錄某個整數所對應的字串個數。對於每個puz

zlepuzzle

puzzle

我們可以得到它的雜湊值,接下來就是列舉它的所有子集,將對應的字串個數累加起來即可。

class

solution

int subset=

0,n=puzzles.

size()

,cnt=0;

auto mend=m.

end();

vector<

int>

ans(n)

;int i=0;

for(

const string &s : puzzles)

while

(subset!=strhashval)

; ans[i++

]=cnt;

}return ans;}}

;

leetcode 1178 猜字謎(位運算)

外國友人仿照中國字謎設計了乙個英文版猜字謎小遊戲,請你來猜猜看吧。字謎的迷面 puzzle 按字串形式給出,如果乙個單詞 word 符合下面兩個條件,那麼它就可以算作謎底 單詞 word 中包含謎面 puzzle 的第乙個字母。單詞 word 中的每乙個字母都可以在謎面 puzzle 中找到。例如,...

力扣1178 猜字謎 C語言實現 困難題

傳送門 外國友人仿照中國字謎設計了乙個英文版猜字謎小遊戲,請你來猜猜看吧。字謎的迷面 puzzle 按字串形式給出,如果乙個單詞 word 符合下面兩個條件,那麼它就可以算作謎底 單詞 word 中包含謎面 puzzle 的第乙個字母。單詞 word 中的每乙個字母都可以在謎面 puzzle 中找到...

力扣演算法題 猜字謎

外國友人仿照中國字謎設計了乙個英文版猜字謎小遊戲,請你來猜猜看吧。字謎的迷面 puzzle 按字串形式給出,如果乙個單詞 word 符合下面兩個條件,那麼它就可以算作謎底 單詞 word 中包含謎面 puzzle 的第乙個字母。單詞 word 中的每乙個字母都可以在謎面 puzzle 中找到。例如,...