leetcode-每日一题2021.11.17 最大单词长度乘积

题目

力扣

思路一

利用C语言的库函数strpbrk,判断两个字符串是否有公共字符。

代码一

int maxProduct(char ** words, int wordsSize){
    int ans=0;
    for(int i=0;i

思路二

位运算,创建哈希表,使用int型的低26位表示a-z这26个字母是否出现。

代码二

class Solution {
public:
    int maxProduct(vector& words) {
        int len=words.size(),ans=0;
        vector hash(len);
        for(int i=0;i

思路三

同样的哈希值只需要存储最长的字符串长度,所以可以使用哈希表代替数组,来优化方法二。

代码三

class Solution {
public:
    int maxProduct(vector& words) {
        int len=words.size(),ans=0;
        unordered_map hash;
        for(int i=0;i

你可能感兴趣的:(leetcode,leetcode,算法,leetcode)