当前位置: 首页 > news >正文

【教3妹学编程-算法题】最大单词长度乘积

好冷啊

3妹:哇,今天好冷啊, 不想上班。
2哥:今天气温比昨天低8度,3妹要空厚一点啊。
3妹 : 嗯, 赶紧把我的羽绒服找出来穿上!
2哥:哈哈,那倒还不至于, 不过气温骤降,一定要预防流感~

注意保暖
3妹:听说东北已经暴雪了
2哥:是啊,他们还放一假,不用上班。哈哈。
3妹:哼, 为什么上海不放假呢。。 我先躲在被窝里刷刷题再去公司吧~

题目:

给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 。

示例 1:

输入:words = [“abcw”,“baz”,“foo”,“bar”,“xtfn”,“abcdef”]
输出:16
解释:这两个单词为 “abcw”, “xtfn”。
示例 2:

输入:words = [“a”,“ab”,“abc”,“d”,“cd”,“bcd”,“abcd”]
输出:4
解释:这两个单词为 “ab”, “cd”。
示例 3:

输入:words = [“a”,“aa”,“aaa”,“aaaa”]
输出:0
解释:不存在这样的两个单词。

提示:

2 <= words.length <= 1000
1 <= words[i].length <= 1000
words[i] 仅包含小写字母

思路:

思考

根据题意进行模拟,利用每个 words[i] 只有小写字母,且只需要区分两字符是否有字母重复。

我们可以使用一个 int 来代指某个 word[i]:低 26 来代指字母 a-z 是否出现过。

然后对每个「字符对」所对应的两个 int 值执行 & 操作(若两字符无重复字符,则结果为 0),并得出最终答案。

java代码:

class Solution {public int maxProduct(String[] words) {int length = words.length;int[] masks = new int[length];for (int i = 0; i < length; i++) {String word = words[i];int wordLength = word.length();for (int j = 0; j < wordLength; j++) {masks[i] |= 1 << (word.charAt(j) - 'a');}}int maxProd = 0;for (int i = 0; i < length; i++) {for (int j = i + 1; j < length; j++) {if ((masks[i] & masks[j]) == 0) {maxProd = Math.max(maxProd, words[i].length() * words[j].length());}}}return maxProd;}
}

相关文章:

【教3妹学编程-算法题】最大单词长度乘积

3妹&#xff1a;哇&#xff0c;今天好冷啊&#xff0c; 不想上班。 2哥&#xff1a;今天气温比昨天低8度&#xff0c;3妹要空厚一点啊。 3妹 : 嗯&#xff0c; 赶紧把我的羽绒服找出来穿上&#xff01; 2哥&#xff1a;哈哈&#xff0c;那倒还不至于&#xff0c; 不过气温骤降&…...

遇到python程序是通过sh文件启动的,如何调试

说明 下载的源码总会遇到这样启动的&#xff1a; 并且发现shell文件内容很多&#xff0c;比较复杂&#xff0c;比如&#xff1a; 解决方案 这时候想要调试&#xff0c;可以通过端口连接的方式调试&#xff0c;具体方法如下&#xff1a; 在vscode调试按钮中添加远程附加调试…...

应用系统集成-Spring Integration

应用系统集成-Spring Integration 图1 EIP 消息系统模式全景图。 Spring Integration 是系统集成的一个实现框架&#xff0c;提供了对EIP核心概念&#xff1a;Endpoint、Message、Channel、Router、Translator的抽象及相关框架实现&#xff0c;使得基于Spring Integration进行…...

亚马逊与TEMU平台欧代英代如何注册?注册欧代/英代流程及注意事项

亚马逊与TEMU平台欧代英代如何注册&#xff1f;注册欧代/英代流程及注意事项 亚马逊平台的商家的产品&#xff0c;由于受到欧盟商品安全新法规市场监管法规欧盟要求所有标有CE标志的商品&#xff0c;都要拥有欧盟境内的欧代作为商品合规的联系方式(也称为负责人)。由于英国脱离…...

【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试

本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建&#xff0c;以及开发与工程调试的完整过程&#xff0c;帮助读者能够在实战中体会到Keil这个开发环境的使用方法&#xff0c;了解一个嵌入式工程从无到有的过程&#xff0c;并且具备快速搭建一个全新芯片对应最小软件…...

python 去除图像中的框

最近在做图像标注&#xff0c;会出现以下的图片&#xff0c;需要去除其中的边框。 1.思路 人工标注画框的范围P&#xff0c;并使用标注工具在画框上画一个点A。获取点A的坐标和颜色。在范围P内&#xff0c;将与点A颜色相似的每一个点x的颜色&#xff0c;替换为点x上下&#…...

企业邀约媒体的方式方法?-(快速精准)

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 快速而精确地邀约媒体通常需要有计划和策略性的方法。以下是一些方法&#xff0c;可以帮助企业有效地邀请媒体&#xff1a; 1. 媒体列表构建&#xff1a;首先&#xff0c;建立一个精心筛…...

旅游业为什么要选择VR全景,VR全景在景区旅游上有哪些应用

引言&#xff1a; VR全景技术的引入为旅游业带来了一场变革。这项先进技术不仅提供了前所未有的互动体验&#xff0c;还为景区旅游文化注入了新的生机。 一&#xff0e;VR全景技术&#xff1a;革新旅游体验 1.什么是VR全景技术&#xff1f; 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联发科手机平台汇总&#xff1a; Qualcomm高通SOC平台汇总&#xff1a; 紫光展锐SOC平台汇总&#xff1a; 新移科技已成功研发手机SOC平台&#xff1a; 联发科平台&#xff1a; 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公司定义的一种高性能&#xff0c;高频率的总线协议。总线协议中的 WLAST 信号是一个重要的信号&#xff0c;它在 AXI 协议中用来标识一个突发&#xff08;Burst&#xff09;传输的最后一…...

11.6 知识总结(筛选器方法、操作标签、事件)

一、 筛选器方法 document.getElementById()------>标签对象------------>直接就是标签 $(document.getElementById()) -------> jQuery对象-------->可以使用jQuery提供的方法 jQuery(document.getElementById()) -------> jQuery对象-------->可以使用jQue…...

Devchat插件:AI智能编程助手,让你告别脏活累活。

文章目录 前言注册登录DevChat的安装和配置DevChat插件安装DevChat插件配置 DevChat的简单使用后记 前言 随着人工智能技术的不断发展和普及&#xff0c;它正在深刻影响着各行各业&#xff0c;并逐渐成为改变世界的重要力量。在软件开发领域&#xff0c;人工智能技术也给开发者…...

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是一个为机器学习开发者提供的开发工具平台&#xff0c;可以帮助用户跟踪实验&#xff0c;管理和版本数据&#xff0c;以及与团队协作&#xff0c;从而更专注于构建最佳模型。 wandb官网&#xff1a; https://wandb.ai 首先我们打开官网注册号自己的账号并…...

飞桨平台搭建PP-YOLOE模型

一、创建项目 此博客仅是运行PP-YOLOE源码&#xff0c;这里以变压器渗漏数据集为例COCO数据集太大了&#xff0c;跑不动&#xff0c;V100训练预估计得7天左右&#xff0c;即便是A100也得4天半&#xff0c;变压器渗漏油数据集跑一个小时左右&#xff0c;还可以接受&#xff0c;…...

Js重点内容

一&#xff0c;什么是js javascript是运行在客户端&#xff08;浏览器&#xff0c;可预览&#xff09;的编程语言 二&#xff0c;主要的功能 用来给静态页&#xff08;html网页&#xff09;增加一些动态功能&#xff08;比如轮播图、tab切换&#xff09; 三&#xff0c;应用…...

图形化ping工具gping

一、介绍 gping能够以折线图的方式&#xff0c;实时展示 ping 的结果&#xff0c;支持 Windows、Linux 和 macOS 操作系统。并且支持多个目标同时Ping同时展示折线图方便对比。下面扩展一下ICMP及ICMP隧道。 ICMP消息结构&#xff1a; ICMP消息是由一个类型字段、一个代码字段、…...

快速安装虚拟机centos7.5

vbox 快速导入安装centos7.5 环境准备 vbox安装&#xff08;下载地址&#xff09; ova镜像&#xff08;下载地址&#xff09;&#xff08;默认是192.168.56.10 加nat网卡&#xff09; 链接&#xff1a;https://pan.baidu.com/s/164Iprh_80HCQmKCU6V-RTw 提取码&#xff1a;if…...

2023.11.4 Idea 配置国内 Maven 源

目录 配置国内 Maven 源 重新下载 jar 包 配置国内 Maven 源 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> …...

DAY11 字符串处理函数

1.测字符串长度函数 头文件&#xff1a; #include <string.h> 函数定义&#xff1a; size_t strlen(const char *s); 函数功能&#xff1a; 测字符指针 s 指向的字符串中字符的个数&#xff0c;不包括 ’\0’ void fun01() {char *num "hello";int len …...

Web自动化测试 —— PageObject设计模式!

一、page object 模式简介 1.1、传统 UI 自动化的问题 无法适应 UI 频繁变化无法清晰表达业务用例场景大量的样板代码 driver/find/click 二、page object 设计原则 2.1、POM 模式的优势 降低 UI 变化导致的测试用例脆弱性问题让用例清晰明朗&#xff0c;与具体实现无关 2.…...

七月论文审稿GPT第2版:从Meta Nougat、GPT4审稿到Mistral、LongLora

前言 如此前这篇文章《学术论文GPT的源码解读与微调&#xff1a;从chatpaper、gpt_academic到七月论文审稿GPT》中的第三部分所述&#xff0c;对于论文的摘要/总结、对话、翻译、语法检查而言&#xff0c;市面上的学术论文GPT的效果虽暂未有多好&#xff0c;可至少还过得去&am…...

Unreal Engine 学习笔记 (1)—— 日夜交替

1.创建关卡 文件新建关卡空白关卡保存关卡&#xff08;命名为NewWorld&#xff09; 2.创建蓝图类 创建蓝图类&#xff08;继承自Actor&#xff09; 命名为SunAndMoon 3.编辑SunAndMoon蓝图类 添加SkyAtmosphere添加SkyLight添加DirectionalLight将DirectionalLight重命名为…...

leetcode:189. 轮转数组(python3解法)

难度&#xff1a;中等 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4]解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3…...

基于PHP + MySQL实现的文章内容管理系统源码+数据库,采用前后端分离的模板和标签化方式

文章内容管理系统 dc-article是一个通用的文章内容管理系统&#xff0c;基于开源的caozha-admin开发&#xff0c;采用前后端分离的模板和标签化方式&#xff0c;支持文章内容管理、栏目分类管理、评论管理、友情链接管理、碎片管理、远程图片获取器等功能。可以使用本系统很轻…...

这可能是全网最晚的低代码技术总结

低代码的发展一向结伴着质疑前行&#xff0c;一些人认为低代码平台限制了开发人员的创新能力&#xff0c;使得开发过程变得过于简单&#xff0c;缺乏深度的定制和灵活性。他们担心&#xff0c;低代码平台可能只适合于简单的应用程序&#xff0c;无法满足复杂业务需求。另一面&a…...

leetcode2054

leetcode 2054 #include <iostream> #include <vector> #include <tuple> #include <algorithm>using namespace std;struct Event {// 时间戳int ts;// op 0 表示左边界&#xff0c;op 1 表示右边界int op;int val;Event(int _ts, int _op, int _v…...

c面向对象编码风格(上)

面向对象和面向过程的基本概念 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在软件开发中用于组织和设计代码的方式。 面向过程编程&#xff08;Procedural Programming&#xff09;是一种以过程&#xff08;函数、方法&#xff09;为核心的编程方式。在面向过程…...

【星海出品】VUE(六)

插槽Slots 传递属性 attribute App,vue <script> import SlotsBase from "./components/SlotsBase.vue" import SlotsTow from "./components/SlotsTow.vue" export default {components:{SlotsBase,SlotsTow},data(){return{message: "父集 m…...