318. 最大单词长度乘积
这道题求没有重复字母的两个字符串的最大长度乘积
重点在于怎么判断两个字符串没有重复字母
题目中只有小写字母,最多26个,于是想到使用26位二进制数来代表每一个字符串
有哪个字母就在对应位置设1
这个转换使用的是num |= 1 << (c-'a');
对字符串中的每一个字符c,将其与'a'做减法,得到1需要向左移动的位数,例如c代表字母d,则c-'a'=3,1<<3代表将1左移3位得到数字00...01000(26位),将其与num进行或运算,从而实现在字母d的位置设1。
而判断两个字符串是否重合,则可以通过二进制与运算实现
两者相与,若结果为0,则无重合字母,若结果为1,则有重合字母。
然后遍历数组,判断在结果为0的情况下,哪两个字符串的长度乘积最大。
class Solution {
public:int maxProduct(vector<string>& words) {vector<int> nums;for(auto word : words){int num = 0;for(auto c : word){num |= 1 << (c-'a');}nums.push_back(num);}int ans = 0;for(int i = 0; i < words.size(); i++){for(int j = i + 1; j < words.size(); j++){if((nums[i]&nums[j]) == 0){ans = max(ans, (int)(words[i].size() * words[j].size()));}}}return ans;}
};
另外,注意max比较时,要保证里面的变量类型相同。
强制类型转换需要前后都加括号,例如:
(int)(words[i].size() * words[j].size())
不能写成:
int(words[i].size() * words[j].size())
也不能写成:
(int)words[i].size() * words[j].size()
相关文章:
318. 最大单词长度乘积
这道题求没有重复字母的两个字符串的最大长度乘积 重点在于怎么判断两个字符串没有重复字母 题目中只有小写字母,最多26个,于是想到使用26位二进制数来代表每一个字符串 有哪个字母就在对应位置设1 这个转换使用的是num | 1 << (c-a); 对字符串中的…...
.NET Core 中插件式开发实现
在 .NET Framework 中,通过AppDomain实现动态加载和卸载程序集的效果;但是.NET Core 仅支持单个默认应用域,那么在.NET Core中如何实现【插件式】开发呢? 一、.NET Core 中 AssemblyLoadContext的使用 1、AssemblyLoadContext简…...
并查集模版以及两道例题
💯 博客内容:并查集 😀 作 者:陈大大陈 🚀 个人简介:一个正在努力学技术的准C后端工程师,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是C…...
英飞凌TLF35584规格书中文
官网: 英飞凌TLF35584QVVS2 TLF35584_SPI: 1 Overview2 Block Diagram3 Pin Configuration3.1 Pin Assignment - PG-VQFN-48 4 General Product Characteristics4.1 Absolute Maximum Ratings 绝对最大额定值4.2 Functional Range4.3 Thermal Resistance…...
【教3妹学编程-算法题】最大单词长度乘积
3妹:哇,今天好冷啊, 不想上班。 2哥:今天气温比昨天低8度,3妹要空厚一点啊。 3妹 : 嗯, 赶紧把我的羽绒服找出来穿上! 2哥:哈哈,那倒还不至于, 不过气温骤降&…...
遇到python程序是通过sh文件启动的,如何调试
说明 下载的源码总会遇到这样启动的: 并且发现shell文件内容很多,比较复杂,比如: 解决方案 这时候想要调试,可以通过端口连接的方式调试,具体方法如下: 在vscode调试按钮中添加远程附加调试…...
应用系统集成-Spring Integration
应用系统集成-Spring Integration 图1 EIP 消息系统模式全景图。 Spring Integration 是系统集成的一个实现框架,提供了对EIP核心概念:Endpoint、Message、Channel、Router、Translator的抽象及相关框架实现,使得基于Spring Integration进行…...
亚马逊与TEMU平台欧代英代如何注册?注册欧代/英代流程及注意事项
亚马逊与TEMU平台欧代英代如何注册?注册欧代/英代流程及注意事项 亚马逊平台的商家的产品,由于受到欧盟商品安全新法规市场监管法规欧盟要求所有标有CE标志的商品,都要拥有欧盟境内的欧代作为商品合规的联系方式(也称为负责人)。由于英国脱离…...
【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试
本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建,以及开发与工程调试的完整过程,帮助读者能够在实战中体会到Keil这个开发环境的使用方法,了解一个嵌入式工程从无到有的过程,并且具备快速搭建一个全新芯片对应最小软件…...
python 去除图像中的框
最近在做图像标注,会出现以下的图片,需要去除其中的边框。 1.思路 人工标注画框的范围P,并使用标注工具在画框上画一个点A。获取点A的坐标和颜色。在范围P内,将与点A颜色相似的每一个点x的颜色,替换为点x上下&#…...
企业邀约媒体的方式方法?-(快速精准)
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 快速而精确地邀约媒体通常需要有计划和策略性的方法。以下是一些方法,可以帮助企业有效地邀请媒体: 1. 媒体列表构建:首先,建立一个精心筛…...
旅游业为什么要选择VR全景,VR全景在景区旅游上有哪些应用
引言: VR全景技术的引入为旅游业带来了一场变革。这项先进技术不仅提供了前所未有的互动体验,还为景区旅游文化注入了新的生机。 一.VR全景技术:革新旅游体验 1.什么是VR全景技术? VR全景技术是一种虚拟现实技术&am…...
搭建第一个区块链网络与一键部署WeBASE步骤
官网 搭建第一个区块链网络 — FISCO BCOS v2 v2.9.0 文档 (fisco-bcos-documentation.readthedocs.io) 一键部署 — WeBASE v1.5.5 文档 (webasedoc.readthedocs.io) 步骤 默认如MySQL、Python、java等依赖已经引入 1.创建操作目录, 下载安装脚本 创建操作目录 cd ~ &a…...
MTK联发科、高通、紫光展锐手机SOC平台型号汇总(含详细参数)
MediaTek联发科手机平台汇总: Qualcomm高通SOC平台汇总: 紫光展锐SOC平台汇总: 新移科技已成功研发手机SOC平台: 联发科平台: MTK6739、MTK6761、MTK6762、MTK6765、MTK8788、MTK6853、MTK6873、MTK6833、MTK6877、…...
【ARM AMBA AXI 入门 12 -- AXI协议中的 WLAST 与 RLAST】
文章目录 AXI协议中的 WLAST 与 RLAST AXI协议中的 WLAST 与 RLAST AMBA AXI协议是由ARM公司定义的一种高性能,高频率的总线协议。总线协议中的 WLAST 信号是一个重要的信号,它在 AXI 协议中用来标识一个突发(Burst)传输的最后一…...
11.6 知识总结(筛选器方法、操作标签、事件)
一、 筛选器方法 document.getElementById()------>标签对象------------>直接就是标签 $(document.getElementById()) -------> jQuery对象-------->可以使用jQuery提供的方法 jQuery(document.getElementById()) -------> jQuery对象-------->可以使用jQue…...
Devchat插件:AI智能编程助手,让你告别脏活累活。
文章目录 前言注册登录DevChat的安装和配置DevChat插件安装DevChat插件配置 DevChat的简单使用后记 前言 随着人工智能技术的不断发展和普及,它正在深刻影响着各行各业,并逐渐成为改变世界的重要力量。在软件开发领域,人工智能技术也给开发者…...
0-1矩阵列互斥问题——回溯法 Python实现
三、 0-1 矩阵的列集互斥问题。给定一个 m n m \times n mn 的 0-1 矩阵 A \mathrm{A} A 。定义列互斥为: 对于矩阵 A A A 中的任意两列 i i i 和 j j j, 如果在对应的每一行上, i i i 和 j j j 不存在同时为 1 的情况, 则称列 i \mathrm{i} i 和 j \mathrm{j} j 互斥…...
wandb 安装本地部署使用教程
1、官网注册 wandb.ai是一个为机器学习开发者提供的开发工具平台,可以帮助用户跟踪实验,管理和版本数据,以及与团队协作,从而更专注于构建最佳模型。 wandb官网: https://wandb.ai 首先我们打开官网注册号自己的账号并…...
飞桨平台搭建PP-YOLOE模型
一、创建项目 此博客仅是运行PP-YOLOE源码,这里以变压器渗漏数据集为例COCO数据集太大了,跑不动,V100训练预估计得7天左右,即便是A100也得4天半,变压器渗漏油数据集跑一个小时左右,还可以接受,…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
