LeetCode 318. 最大单词长度乘积(位运算)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 318. 最大单词长度乘积(位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個字符串數組 words,找到 length(word[i]) * length(word[j]) 的最大值,并且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。
示例 1: 輸入: ["abcw","baz","foo","bar","xtfn","abcdef"] 輸出: 16 解釋: 這兩個單詞為 "abcw", "xtfn"。示例 2: 輸入: ["a","ab","abc","d","cd","bcd","abcd"] 輸出: 4 解釋: 這兩個單詞為 "ab", "cd"。示例 3: 輸入: ["a","aa","aaa","aaaa"] 輸出: 0 解釋: 不存在這樣的兩個單詞。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/maximum-product-of-word-lengths
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 位運算
- 將字符串的比較轉換成數字的比較
- 題目說只有小寫字符,那最多只有26位,用32位的 int 的每一位 bit 記錄一個字符串是否包含某種字母
- 然后雙重for循環,比較各字符串對應的數值的 & 操作值 是否等于0(各 bit 都不同,即字符都不同)
總結
以上是生活随笔為你收集整理的LeetCode 318. 最大单词长度乘积(位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 357. 计算各个位数
- 下一篇: LeetCode 1382. 将二叉搜索