LeetCode 318. Maximum Product of Word Lengths 题解(C++)

Maximum Product of Word Lengths LeetCode Maximum Product of Word Lengths 完整C++代码,本人使用linux下的g++编译 立即下载

LeetCode 318. Maximum Product of Word Lengths 题解(C++)


题目描述

  • Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.

举例

  • Given [“abcw”, “baz”, “foo”, “bar”, “xtfn”, “abcdef”]
    Return 16
    The two words can be “abcw”, “xtfn”.
  • Given [“a”, “ab”, “abc”, “d”, “cd”, “bcd”, “abcd”]
    Return 4
    The two words can be “ab”, “cd”.
  • Given [“a”, “aa”, “aaa”, “aaaa”]
    Return 0
    No such pair of words.

思路

  • 先创建一个长度跟words一样的整型数组vec,每个数组元素初始化为0,因为int有32个bit,所以我们用每一个元素的后26个bit来记录在每一个string中26个小写英文字母有没有出现,若出现则为该位为1,没出现则为0,这里我们用一个vec[i] |= 1 << (c - ‘a’)来实现,假设c为’d’,则‘d’减去’a’等于3,所以1右移3位为1000,之后将1000与vec[i]位或运算;
  • 上面我们已经记录了每一个string中各个小写字母出现的情况,此时我们只要使用两重循环对words进行遍历,并比较每两个string是否出现共同的小写字母,这里用vec[i] & vec[j]实现,若两者位与运算后等于0,则代表这两个字符串没有共同的小写字母,这时只要将两者的乘积与已存在的最大乘积相比较,取最大的保存即可。

代码

class Solution 
{
public:
    int maxProduct(vector<string>& words)
    {
        int len = words.size();
        vector<int> vec(len, 0);
        int product = 0;
        for (int i = 0; i < len; ++i)
        {
            for (auto c : words[i])
            {
                vec[i] |= 1 << (c - 'a');
            }
        }

        for (int i = 0; i < len; ++i)
        {
            for (int j = i + 1; j < len; ++j)
            {
                if ((vec[i] & vec[j]) == 0)
                {
                    product = max(product, static_cast<int>(words[i].size() * words[j].size()));
                }
            }
        }
        return product;
    }
};
电磁仿真软件CST2020 下载链接及安装破·解教程笔记 众所周知,配环境是安装软件最头疼的事情。CST2020我调了一上午,网上现有的安装教程良莠不齐,很难有一篇文章能够全流程的讲述安装过程以及遇到的问题。正好今天我要给另一台电脑装软件,借此机会把安装过程记录下来,以供将来使用和他人借鉴。 首先提供下载地址: 百度网盘 链接:https://pan.baidu.com/s/1cDJZelufj-nliUfekMNpEA 提取码:8ihx 附: 根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软 阅读详情

相关推荐

Anaconda下安装LabelImg

Anaconda下安装LabelImg

LYH8543的博客 756

318. 最大单词长度乘积-将单词转化为位运算

给定一个字符串数组words,找到length(word[i]) * length(word[j])的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例1: 输入: ["abcw","baz","foo","bar","xtfn","abcdef"] 输出: 16 解释: 这两个单词为 "abcw", "xtfn"。 示...

嗑盐工作室 361

超声波测距的15度魔法:HC-SR04测量角度特性在机器人避障中的实战技巧

本文深入探讨了HC-SR04超声波测距模块在机器人避障中的15度测量角度特性及其应用技巧。通过分析15度角的工程意义、多模块阵列设计、狭小空间优化方案及温度补偿技术,帮助开发者提升机器人环境感知能力。文章特别强调了HC-SR04模块在低成本避障方案中的核心优势与实战优化策略。

weixin_29172963的博客 430

LeetCode-318. Maximum Product of Word Lengths [C++][Java]

Given a string arraywords, returnthe maximum value oflength(word[i]) * length(word[j])where the two words do not share common letters. If no such two words exist, return0.

贫道绝缘子的博客 363

IST——In-System-Test

安全性是自动驾驶平台的关键特性之一,而这些架构中使用的半导体芯片必须保证ISO 26262标准所要求的功能安全方面。为了监控由于现场缺陷导致的故障,在启动和/或关闭期间会自动运行系统内结构测试。当系统内测试(IST,In-System-Test)架构检测到任何永久性缺陷时,驾驶平台会做出响应,以实现系统的故障安全状态。汽车IC采用高质量测试方法进行筛选,以实现接近零的DPPM(每百万缺陷部件)。即使在这样的高测试标准下,由于环境或操作条件的影响,在系统现场运行过程中仍可能出现可靠性缺陷。

weixin_50518899的博客 3207

树莓派Bookworm系统避坑指南:3种方法解决pip install报错externally-managed-environment

本文详细解析树莓派Bookworm系统中pip install报错externally-managed-environment的成因,并提供三种实用解决方案:使用虚拟环境(venv)隔离项目依赖、通过pipx管理全局Python工具,以及理解风险后的系统安装方法。帮助开发者安全高效地管理Python环境,避免系统冲突。

android的专栏 766

leetcode 318. 最大单词长度乘积 python

题目描述: 题解一:超时未通过 基本思路:利用set自动去重性质 1.在两个for循环中依次比较words中的两个单词word[i]和word[j]。 2.分别用两个小set保存两个单词中出现的字母,然后用一个大set保存在这两个单词中出现的所有字母,然后判断两个小set长度之和是否等于大set的长度,如果相等,说明没有重复字母,计算长度乘积。 class Solution(object): def maxProduct(self, words): word_num.

ganggang的博客 305

基于 Datawhale 开源量化投资学习指南(10):基于 LightGBM 的量化选股

通过本篇文章,我们深入探索了如何运用 LightGBM 机器学习模型实现量化选股。首先,我们通过获取股票的历史数据,进行特征工程和标签制作,将选股问题转化为一个分类问题。接着,我们使用 LightGBM 训练模型,并在验证集和测试集中评估了模型的表现。该选股策略的核心在于结合机器学习算法,从历史数据中寻找能够捕捉股票短期涨跌的关键特征,从而为投资者提供辅助决策支持。虽然本文的模型取得了一定的效果,但这只是量化投资领域的一小部分。

不想宅的冷同学 1347

Leetcode 318答案详解(基于C++位操作)

随机Pick到Leetcode的318题,选择了C++基于STL的答题模式。 先看题目,Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that

Bing's Blog 3万+

CAD制图

CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。·CAD三维开发是指使用计算机程序和工具来创建、编辑和操作三维模型、图形和设计的过程。它在工程、建筑、制造和游戏等领域广泛应用。CAD三维开发可能涉及到复杂的图形算法、性能优化、并行计算等方面的内容,因此需要深入学习和实践,以提高开发的效率和质量。

RZer的博客 1654

uniapp - 应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准(uniApp开发安卓APP上架应用市场审核被拒绝驳回,详细解决方案)

uniApp应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准。uniapp vue2 vue3解决软件在运行时,未见向用户告知权限申请的目的,华为等上架被拒问题,关于华为应用市场上架需要同步告知使用权限的解决方案,uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。华为应用市场审核新规(未同步告知权限申请的使用目

🏆 前端领域优质创作者 4164

LeetCode //C - 318. Maximum Product of Word Lengths

【代码】LeetCode //C - 318. Maximum Product of Word Lengths。

Made in Code 1160

宇树G1语音助手完整开发指南(上)——从零构建智能知识库对话系统

本文将详细介绍如何为宇树G1人形机器人开发一个,实现"唤醒 → 对话 → 查询 → 回复"的智能助手功能。

m0_47999117的博客 786

[LeetCode 318] Maximum Product of Word Lengths

Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case lett

coder 进阶的专栏 4186

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LeetCode 318. Maximum Product of Word Lengths

Description Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that e...

weixin_34405354的博客 80

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【题解】Leetcode.318. Maximum Product of Word Lengths

Given a string array words, find the maximum value of length(word[i])* length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case le

Blackkitty 's Blog 714

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode——318. 最大单词长度乘积(Maximum Product of Word Lengths)[中等]——分析及代码(C++)

LeetCode——318. 最大单词长度乘积[Maximum Product of Word Lengths][中等]——分析及代码[C++]一、题目二、分析及代码1. 位运算(1)思路(2)代码(3)结果三、其他 一、题目 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 输入: ["a

江南土豆的博客 545

leetcode 318. Maximum Product of Word Lengths-最长单词积|位运算

原题链接:318. Maximum Product of Word Lengths 【思路-Java、Python】 本题的妙处在于用一个 int 值就能表示26个字母,哪些字母在单词中出现过,哪些字母没有在单词中出现过。我们知道一个 int 值有32位,小写字母总共有26位,32位的 int 值足够用每一位表示26位字母是否在单词中出现。假设字母 a 可以映射为0,b可以映射为1,...,z

hdtopku 1242

Leetcode 318. Maximum Product of Word Lengths

题目 Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower

weixin_36336156的博客 194

LeetCode P318 Maximum Product of Word Lengths

Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case

greyfreedom的专栏 436

318 Maximum Product of Word Lengths 最大单词长度乘积

给定一个字符串数组words,找到length(word[i]) * length(word[j])的最大值,并且两个单词不含公共的字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。示例 1:输入 ["abcw", "baz", "foo", "bar", "xtfn", "abcdef"]返回 16两个单词可以为 "abcw", "xtfn"。示例 2:输入 ["a",...

weixin_30386713的博客 145

[leetcode 318]Maximum Product of Word Lengths--判断两个字符串是否有相同的字符

Question: Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain onl

清空 648

【LeetCode】318. Maximum Product of Word Lengths 解题报告(Python)

【LeetCode】318. Maximum Product of Word Lengths 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.me/ 题目地址:https://leetcode.com/problems/...

负雪明烛 2294

[leetcode] 318. Maximum Product of Word Lengths

Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case le

TstsUgeg的博客 795

LeetCode(C++):二维数组

一:对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,4,7,5,3,6,8,9] 解释: 思路一: 按遍历方向来按规律往结果res中添加数字,添加的顺序如下:...

wh_0727的博客 1488

Leetcode 318. 最大单词长度乘积 C++

Leetcode 318. 最大单词长度乘积 题目 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 测试样例 示例 1: 输入: ["abcw","baz","foo","bar","xtfn","abcdef"] 输出: 16 解释: 这两个单词为 "abcw", "xtfn"。 示例 2: 输入: ["a","ab","abc","

weixin_43750513的博客 336
上一篇: LeetCode 319. Bulb Switcher 题解(C++)
下一篇: LeetCode 436. Find Right Interval 题解(C++)
prayyojay
博客等级 码龄10年 4粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值