C++题解-Leecode 318. 最大单词长度乘积——Leecode每日一题系列
今天是坚持每日一题打卡的第二十二天
题目链接:https://leetcode-cn.com/problems/maximum-product-of-word-lengths/
题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779
题目描述
给定一个字符串数组 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
解释: 不存在这样的两个单词。
提示:
2 <= words.length <= 1000
1 <= words[i].length <= 1000
words[i] 仅包含小写字母
核心思路: 位运算 + 字符串
由于字母只有26位,因此可以采用或运算的方式求出每个单词中字母出现的位置和次数
同时,如果两个数相与为0,则代表这两个字符串无字母重复。
class Solution {private:static const int MAX_LEN = 1000 + 10;
public:int maxProduct(vector<string>& words) {int arr[MAX_LEN] = {0}, pos = 0;int res = 0;for (int i = 0; i < words.size(); i++) {int t = 0;for (auto j : words[i]) {t = t | (1 << (j-'a'));}arr[pos++] = t;}for (int i = 0; i < pos; i++) {for(int j = i + 1; j < pos; j++) {if ((arr[i] & arr[j]) == 0) res = max(res, int(words[i].size() * words[j].size()));}}return res;}
};
C++题解-Leecode 318. 最大单词长度乘积——Leecode每日一题系列相关推荐
- LeetCode 391. 完美矩形(扫描线) / 318. 最大单词长度乘积 / 563. 二叉树的坡度
391. 完美矩形 2021.11.16 每日一题 题目描述 给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形.这 ...
- leetcode 318. Maximum Product of Word Lengths | 318. 最大单词长度乘积
题目 https://leetcode.com/problems/maximum-product-of-word-lengths/ 题解 中规中矩的题目,中规中矩的思路,不像是一个 medium 题. ...
- 318. 最大单词长度乘积 golang
question 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母.你可以认为每个单词只包含小写字母.如 ...
- LeetCode 318. 最大单词长度乘积(位运算)
1. 题目 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母.你可以认为每个单词只包含小写字母.如果不存 ...
- leetcode 318 最大单词长度乘积
https://leetcode-cn.com/problems/maximum-product-of-word-lengths/ 题目 给定一个字符串数组wordswordswords,找到leng ...
- 【LeetCode笔记 - 每日一题】318. 最大单词长度乘积(Java、位运算)
文章目录 题目描述 思路 && 代码 题目描述 挺不错!有bitmap的感觉了. 思路 && 代码 思路好想:两两对比,无公共判断,维护 res 那么,如何进行公共判断 ...
- C++题解-Leecode 520. 检测大写字母——Leecode每日一题系列
今天是坚持每日一题打卡的第十八天 题目链接:https://leetcode-cn.com/problems/detect-capital/ 题解汇总:https://zhanglong.blog.c ...
- 题意解读+详细题解-Leecode 319. 灯泡开关——Leecode每日一题系列
今天是坚持每日一题打卡的第二十天 题目链接:https://leetcode-cn.com/problems/bulb-switcher/ 题解汇总:https://zhanglong.blog.cs ...
- C++题解-Leecode 375. 猜数字大小 II——Leecode每日一题系列
今天是坚持每日一题打卡的第十七天 题目链接:https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/submissions/ ...
最新文章
- 三维空间平面拟合MATLAB
- 因果AI诊断模型登上nature:模拟专业医师思维,诊断罕见疾病,超越SOTA算法
- Android序列化与反序列化
- 数学建模模型概述框架
- 牛客 - tokitsukaze and Inverse Number(树状数组+逆序对定理)
- Raphael学习笔记(2)--绘图(基本图形)
- jQuery源码研究分析学习笔记-回调函数(11)
- 【译】你不知道的 Chrome 调试工具技巧 第二十天:Workspace的黑魔法
- 准确率创新高,北大开源中文分词工具包 pkuseg
- 符号级别(一)--基础概念
- java正则表达式大全(常用)
- 游戏软件测试学什么条件,游戏测试工程师岗位的工作内容
- windows快捷键之预览窗格
- dx12 龙书第十六章学习笔记 -- 实例化与视锥体剔除
- JPA中could not insert: 的解决办法
- Altium Designer(AD)的简易使用
- 最新版gg服务器框架安装器,GG服务框架安装器最新版本
- 三大运营商URL欺骗;手机免费上网,测试,教程,服务器
- 【问卷调查发布系统的设计与实现】
- 《Arduino开发实战指南:机器人卷》一3.2 直流电机工作原理