【Leetcode 每日一题】2506. 统计相似字符串对的数目

问题背景

给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words
如果两个字符串由相同的字符组成,则认为这两个字符串 相似

  • 例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。
  • 然而,“abacba” 和 “bcfd” 不相似,因为它们不是相同字符组成的。

请你找出满足字符串 w o r d s [ i ] words[i] words[i] w o r d s [ j ] words[j] words[j] 相似的下标对 ( i , j ) (i, j) (i,j),并返回下标对的数目,其中 0 ≤ i < j ≤ w o r d s . l e n g t h − 1 0 \le i \lt j \le words.length - 1 0i<jwords.length1

数据约束

  • 1 ≤ w o r d s . l e n g t h ≤ 100 1 \le words.length \le 100 1words.length100
  • 1 ≤ w o r d s [ i ] . l e n g t h ≤ 100 1 \le words[i].length \le 100 1words[i].length100
  • w o r d s [ i ] words[i] words[i] 仅由小写英文字母组成

解题过程

想到了字符串映射和字符串哈希,没想到用位运算来进行压缩存储。统计数量的做法,参考 好数对数目 就可以了。

具体实现

class Solution {
    public int similarPairs(String[] words) {
        Map<Integer, Integer> count = new HashMap<>();
        int res = 0;
        for (String word : words) {
            int mask = 0;
            for (char c : word.toCharArray()) {
                mask |= 1 << (c - 'a');
            }
            int cur = count.getOrDefault(mask, 0);
            res += cur;
            count.put(mask, cur + 1);
        }
        return res;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

selenium爬取苏宁易购平台某产品的评论

目录 selenium的介绍 1、 selenium是什么&#xff1f; 2、selenium的工作原理 3、如何使用selenium&#xff1f; webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么&#xff1f; 用于Web应用程序测试的工具。可以驱动浏览…

2025前端框架最新组件解析与实战技巧:Vue与React的革新之路

作者&#xff1a;飞天大河豚 引言 2025年的前端开发领域&#xff0c;Vue与React依然是开发者最青睐的框架。随着Vue 3的全面普及和React 18的持续优化&#xff0c;两大框架在组件化开发、性能优化、工程化支持等方面均有显著突破。本文将从最新组件特性、使用场景和编码技巧三…

基于AVue的二次封装:快速构建后台管理系统的CRUD方案

基于AVue的二次封装&#xff1a;快速构建后台管理系统的CRUD方案 在开发后台管理系统时&#xff0c;表格是常见的组件之一。然而&#xff0c;使用原生的Element Plus实现CRUD&#xff08;增删改查&#xff09;功能往往需要编写大量重复代码&#xff0c;过程繁琐。即使借助类似…

实验 Figma MCP + Cursor 联合工作流

开源项目 Figma-Context-MCP 介绍 使用此 Model Context Protocol 服务器授予 Cursor 对 Figma 文件的访问权限。 当 Cursor 可以访问 Figma 设计数据时&#xff0c;它比粘贴屏幕截图等其他方法更能准确地进行代码转化。 开源仓库&#xff1a; GLips/Figma-Context-MCP 具体…

C语言(11)------------->while循环

一、if与while的区别 在C语言中&#xff0c;有三大结构&#xff0c;分别是顺序、选择和循环。在前面的博客文章中&#xff0c;我们解释了if语句的用法&#xff0c;可以参考&#xff1a;C语言&#xff08;7&#xff09;------------&#xff1e;if语句-CSDN博客 从文章中&…

将 Vue 项目打包后部署到 Spring Boot 项目中的全面指南

将 Vue 项目打包后部署到 Spring Boot 项目中的全面指南 在现代 Web 开发中&#xff0c;前后端分离架构已经成为主流。然而&#xff0c;在某些场景下&#xff0c;我们可能需要将前端项目&#xff08;如 Vue&#xff09;与后端项目&#xff08;如 Spring Boot&#xff09;集成部…

Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)

一、进程虚拟地址空间 这里以kernel 2.6.32&#xff0c;32位平台为例。 1.空间布局 在 32 位系统中&#xff0c;虚拟地址空间大小为 4GB。其中&#xff1a; 内核空间&#xff1a;占据高地址的 1GB &#xff0c;用于操作系统内核运行&#xff0c;包含内核代码、内核数据等&am…

软件集成测试的技术要求

文章目录 一、软件集成测试的概念二、测试对象三、测试目的四、进入条件五、测试内容六、测试环境七、测试实施方一、软件集成测试的概念 软件集成测试(Software Integration Testing),也称部件测试,一种旨在暴露接口以及集成组件间交互时存在的缺陷的测试。集成测试是灰盒…

【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一(24分)【问题1】(6分)【问题2】(10分)【问题3】(8分)试题二(26分)【问题1】(8分)【问题2】(8分)【问题3】(4分)【问题4】(6分)试题三(25分)【问题1】(12分)【问题2】(7分)【问题…

Golang GORM系列:GORM无缝集成web框架

高效的数据管理是每个成功的web应用程序的支柱。GORM是通用的Go对象关系映射库&#xff0c;它与流行的Go web框架搭配得非常好&#xff0c;提供了无缝集成&#xff0c;简化了数据交互。本指南将带你探索GORM和web框架&#xff08;如Gin&#xff0c; Echo和Beego&#xff09;之间…

C语言(22)

字符函数和字符串函数 7.strcpy/strcat/strcmp与strncpy/strncat/strncmp区别 前者是长度不受限制的字符串函数&#xff0c;后者是长度受限制的字符串函数 8.strncpy的使用 char * strncpy ( char * destination , const char * source , size_t num ) ; //拷贝num个字符从…

提升C++项目编译速度

目录 一、问题背景 二、代码规范方面的解决方案 2.1 拆分头文件 2.2 拆分巨型类 2.3 使用前置声明 2.4 避免在头文件中包含实现 2.5 避免头文件重复包含 2.6 将常用且变动较少的独立到一个文件 三、代码业务重构方面经验 3.1 使用PIMPL&#xff08;Pointer to Imple…

vue从入门到精通(十二):列表渲染

12.1 v-for指令 1.用于展示列表数据 2.语法:v-for“(item,index) in xxx” :key“yyy” 3.可遍历:数组、对象、字符串(用的很少)、指定次数(用的很少) 12.2 key的原理 react、vue中的key有什么作用?(key的内部原理) 1.虚拟DOM中key的作用: key是虚拟DOM对象的标识&#…

Unity游戏制作中的C#基础(1)界面操作基础

1.脚本有关注意事项 &#xff08;1&#xff09;.进入项目之后&#xff0c;一般创建一个文件夹Scripts用来存放c#脚本&#xff1b; &#xff08;2&#xff09;.在Scripts中创建脚本&#xff0c;双击脚本&#xff0c;进入VS编辑器&#xff0c;有如下结构&#xff1a; start&#…

基于Flask的京东商品信息可视化分析系统的设计与实现

【Flask】基于Flask的京东商品信息可视化分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 系统能够灵活地执行SQL查询&#xff0c;提取出用于分析的关键数据指标。为了将这…

碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具

这是碳基生命的悲歌&#xff0c;还是地球文明的拐点&#xff1f; 今天因为复杂的Linux so 依赖问题&#xff0c;想写一个递归ldd收集所有依赖的工具。抱着试试看的态度&#xff0c;问了DeepSeek&#xff0c;经过5分钟的思考&#xff0c;给出的脚本一次运行通过&#xff0c;我的…

【够用就好005】-在VSCode中管理ECS服务器的实操步骤

前景提要&#xff1a;接触过云服务器&#xff0c;当前有一个可以使用的ecs服务器。 关于如何搭建配置云服务不在今天分享主题内。 亲测有效&#xff01;&#xff01;&#xff01; 通过 VSCode 直接配置服务器步骤 一.先安装ssh插件 CTRL shift x 插件界面输入ssh安装remot…

Mac M3/M4 本地部署Deepseek并集成vscode

Mac 部署 使用傻瓜集成平台ollama&#xff0c;ollama平台依赖于docker&#xff0c;Mac的M3/M4 因doesn’t have VT-X/AMD-v enabled 所以VB,VM无法使用&#xff0c;导致docker无法启动&#xff0c;需要使用docker的替代品podman&#xff0c; 它完全兼容docker brew install p…

Dify使用教程1:Dify创建文本生成应用

选择“创建空白应用”: 选择“文本生成应用”, 填写“应用名称”: 然后点击“创建”: LLM 提供者的密钥未设置, 点击“去设置”: 选择智普:

linux之perf(17)PMU事件采集脚本

Linux之perf(17)PMU事件采集脚本 Author: Once Day Date: 2025年2月22日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: Perf性能分析_Once_day的博…