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

Leetcode2506:统计相似字符串对的数目

题目描述:

给你一个下标从 0 开始的字符串数组 words 。

如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。

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

请你找出满足字符串 words[i]  words[j] 相似的下标对 (i, j) ,并返回下标对的数目,其中 0 <= i < j <= words.length - 1 。

代码思路:

  1. 目标理解
    • 给定一个字符串数组 words,目标是找出所有满足条件的字符串对 (i, j),其中 words[i] 和 words[j] 由相同的字符组成,并且 0 <= i < j <= words.length - 1
  2. 主要思路
    • 字符集排序:对于每个字符串,我们可以将其字符去重并排序,形成一个“标准化”的字符串。这样做的目的是为了将字符组成相同的字符串映射到同一个标准化字符串上。
    • 哈希表计数:使用一个哈希表(字典)来记录每个标准化字符串出现的次数。
    • 计算相似对:对于哈希表中每个标准化字符串,如果出现次数大于1,那么这些字符串之间可以组成相似对。相似对的数量可以通过组合数学计算得出,即从 v 个相同的字符串中可以选出 C(v, 2) = v * (v - 1) / 2 对相似对。
  3. 代码实现步骤
    • 初始化一个计数器 res 为0,用于记录相似对的总数。
    • 初始化一个哈希表 dic,用于记录每个标准化字符串的出现次数。
    • 遍历字符串数组 words
      • 对于每个字符串 w,将其字符去重并排序,形成一个标准化字符串 t
      • 如果 t 不在哈希表 dic 中,则将其加入哈希表并设置计数为1;如果已经在哈希表中,则将计数加1。
    • 遍历哈希表 dic
      • 对于每个键值对 (k, v),如果 v > 1,则计算并累加相似对的数量 v * (v - 1) / 2 到 res
    • 返回相似对的总数 res

 代码实现:

class Solution:def similarPairs(self, words: List[str]) -> int:res = 0dic = dict()for w in words:ref = sorted(list(set(w)))t = "".join(ref)if t not in dic:dic[t] = 1else:dic[t] += 1for k,v in dic.items():if v > 1:res += (v*(v-1))//2return res

 

相关文章:

Leetcode2506:统计相似字符串对的数目

题目描述&#xff1a; 给你一个下标从 0 开始的字符串数组 words 。 如果两个字符串由相同的字符组成&#xff0c;则认为这两个字符串 相似 。 例如&#xff0c;"abca" 和 "cba" 相似&#xff0c;因为它们都由字符 a、b、c 组成。然而&#xff0c;"…...

蓝桥月赛 之 26场

文章目录 好汤圆灯笼猜谜元宵分配摆放汤圆 好汤圆 好汤圆 思路分析&#xff1a;由于2025能够被15整除&#xff0c;所以我们直接输出对应的答案即可 import os import sys# 请在此输入您的代码print(2025//15)灯笼猜谜 灯笼猜谜 思路分析&#xff1a;首先呢&#xff0c;我就考…...

机器学习面试八股文——决战金三银四

大家好&#xff0c;这里是好评笔记&#xff0c;公主 号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记的任务是解读机器学习实践/面试过程中可能会用到的知识点&#xff0c;内容通俗易懂&#xff0c;入门、实习和校招轻松搞定。 公主号合集地址 点击进入优惠地…...

umi: valtio的使用

一、基本用法 import { proxy, useSnapshot } from umijs/max;// 1、定义数据 const state proxy({ count: 33 });export default () > {// 2、使用数据const snap useSnapshot(state);function increaseCount() {state.count 1;}return (<><h1>{snap.count}…...

区块链相关方法-波特五力分析模型

一、定义:波特五力分析模型&#xff08;Porters Five Forces Framework&#xff09;是迈克尔・波特&#xff08;Michael Porter&#xff09;于 1979 年提出的一种用于分析行业竞争态势的工具。它通过考察五种力量的相互作用来评估一个行业的吸引力和竞争环境&#xff0c;这五种…...

纷析云开源版- Vue2-增加字典存储到localStorage

main.js //保存字典数据到LocalStorage Vue.prototype.$api.setting.SystemDictType.all().then(({data}) > {loadDictsToLocalStorage(data) })新增 dictionary.js 放在 Utils文件夹里面 // 获取字典数据 export function getDictByType(dictType) {const dicts JSON.par…...

HTML项目一键打包工具:HTML2EXE 最新版

HTML2EXE 工具可以一键打包生成EXE可执行文件。可以打包任意HTML项目或者是一个网址为单个EXE文件&#xff0c;直接打开即可运行。支持KRPano全景VR项目、WebGL游戏项目、视频播放、,课件打包、网址打包等。 一、功能特点 类别序号功能标题1支持程序图标自定义&#xff08;支持…...

Windows 中的启动项如何打开?管理电脑启动程序的三种方法

在日常使用电脑时&#xff0c;我们经常会发现一些应用程序在开机时自动启动&#xff0c;这不仅会拖慢系统的启动速度&#xff0c;还可能占用不必要的系统资源。幸运的是&#xff0c;通过几个简单的步骤&#xff0c;你可以轻松管理这些开机自启的应用程序。接下来&#xff0c;我…...

在 JavaScript 中接入 Facebook 事件

在 JavaScript 中接入 Facebook 事件 本文档介绍了如何在 JavaScript 中集成 Facebook Pixel 事件&#xff0c;用于跟踪网站的用户行为并提高广告效果。 1. 安装并初始化 Facebook Pixel 在开始接入事件之前&#xff0c;首先需要在你的网页中初始化 Facebook Pixel。Faceboo…...

如何在cursor上使用 deepseek 模型

引言 Cursor 虽提供免费试用&#xff0c;但试用时间有限&#xff0c;且后续使用可能会面临速度限制。不过&#xff0c;用户可以使用自己的 API key 来继续使用。值得一提的是&#xff0c;deepseek 模型使用成本极为低廉&#xff0c;能为使用者带来更多灵活性与经济性。基于此&…...

mysql的字符集和比较规则

mysql的字符集和比较规则 一、字符集&#xff08;Character Set&#xff09;二、比较规则&#xff08;Collation&#xff09;三、客户端与服务器的字符集转换四、注意事项总结 深度解读mysql是怎样运行的 MySQL的字符集和比较规则是其处理字符串存储、传输及比较的核心机制&…...

什么是LoRA微调

LoRA是大模型微调方法的一种&#xff0c;它的特点是只在模型的 部分权重&#xff08;如 QKV 矩阵&#xff09; 上 添加可训练参数 通过 低秩矩阵&#xff08;AB&#xff09; 来优化参数更新 优点&#xff1a; 极大降低显存消耗&#xff08;deepseek 7B 只需 10GB&#xff09; 适…...

热管理系统:新能源汽车的 “温度管家”

在新能源汽车的众多系统中&#xff0c;热管理系统堪称是一位默默守护的 “温度管家”&#xff0c;其重要性不容小觑。传统燃油车的热管理主要围绕发动机、变速箱冷却系统和空调系统&#xff0c;而新能源汽车的热管理则涵盖了电池系统、电机电控、空调系统等绝大部分零部件 &…...

如何修改Windows系统Ollama模型存储位置

默认情况下&#xff0c;Ollama 模型会存储在 C 盘用户目录下的 .ollama/models 文件夹中&#xff0c;这会占用大量 C 盘空间&#xff0c;增加C盘“爆红”的几率。所以&#xff0c;我们就需要修改Ollama的模型存储位置 Ollama提供了一个环境变量参数可以修改Ollama的默认存在位…...

《网络安全入门实战手册》

0经验转行网络安全&#xff0c;个人分享一下学习中总结的文档&#xff0c;以下为目录可以点击标题看对应文章&#xff0c;欢迎评论区讨论&#xff0c;后期会发更多安全相关的学习资料等。希望跟大家一起进步。 第1章&#xff1a;网络安全基础知识 1、什么是网络安全&#xff…...

一文详解U盘启动Legacy/UEFI方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理&#xff0c;以及面对一些问题时的解决思路&#xff0c;故对以前的方法进行原理上的解释&#xff0c;主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导&#xff0c;我们可以看一下微pe制作的启动盘&#…...

如何查看java的字节码文件?javap?能用IDEA吗?

编译指令&#xff1a; javac YourProject.java 查看字节码文件的指令&#xff1a; javap -c -l YourProject.class 不添加-c指令就不会显示字节码文件&#xff1a; 不添加 -l 就不会显示源代码和字节码文件的对应关系&#xff1a; 添加-l之后多出来这些&#xff1a; IDEA不太…...

加油站(力扣134)

既然每一个加油站都有对应的加油量和耗油量&#xff0c;我们不妨计算一下每个加油站的汽油净增量。如果每个加油站净增量之和不为负数&#xff0c;则说明一定可以找到唯一的起始点。那我们该如何找到这个起始点呢&#xff1f;我们设置最开始的起点为第0个加油站&#xff0c;接着…...

1.vue使用vite构建初始化项目

npm create vuelatest❯ npm create vuelatest> npx > create-vueVue.js - The Progressive JavaScript Framework✔ Project name: … vue3_test ✔ Add TypeScript? … No / Yes ✔ Add JSX Support? … No / Yes ✔ Add Vue Router for Single Page Application dev…...

汽车零部件开发应该具备哪些编程思维?

目录 1、功能安全思维 2、实时性与确定性思维 3、可靠性和冗余思维 4、硬件软件协同思维 5、CAN总线通信思维 6、故障诊断和自诊断思维 7、功耗优化思维 8、软件更新和版本管理思维 9、用户体验与安全性思维 汽车零部件开发中&#xff0c;嵌入式软件在车辆系统中的作用…...

SpringBoot项目API文档从‘能用’到‘好用’:Swagger3配置详解与Knife4j美化实战

SpringBoot项目API文档从‘能用’到‘好用’&#xff1a;Swagger3配置详解与Knife4j美化实战 在团队协作或对外提供API服务时&#xff0c;一份专业、易用的API文档能显著提升开发效率和用户体验。虽然Swagger3已经为SpringBoot项目提供了基础的API文档功能&#xff0c;但要让文…...

Overleaf实战:手把手教你用LaTeX画出教科书级别的分块矩阵与范数

Overleaf实战&#xff1a;教科书级分块矩阵与范数绘制指南 如果你曾在学术论文或技术文档中遇到过需要展示复杂矩阵结构的情况&#xff0c;一定体会过排版带来的挫败感。传统文字处理软件对数学公式的支持总是差强人意&#xff0c;而LaTeX作为科研排版的事实标准&#xff0c;却…...

从GPT-3到ChatGPT:一文读懂RLHF(人类反馈强化学习)的实战流程与核心代码

从GPT-3到ChatGPT&#xff1a;RLHF技术实战全解析与代码实现 当1750亿参数的GPT-3在2020年横空出世时&#xff0c;人们惊叹于它惊人的文本生成能力&#xff0c;却也发现这个"天才少年"常常答非所问、编造事实甚至产生有害内容。OpenAI的研究团队在2022年提出的Instru…...

Python开发岗转Agent开发岗学习路线

Python开发岗转Agent开发岗学习路线 前言 从Python开发岗转型到AI Agent开发岗是顺应2026年技术趋势的明智选择。您的Python基础和后端工程经验是宝贵的财富&#xff0c;转型并非从零开始&#xff0c;而是能力的升级和拓展。 转型学习路线图 阶段一&#xff1a;基础认知与核心框…...

如何高效管理微信好友与群组?WeChat Toolbox智能解决方案

如何高效管理微信好友与群组&#xff1f;WeChat Toolbox智能解决方案 【免费下载链接】wechat-toolbox WeChat toolbox&#xff08;微信工具箱&#xff09; 项目地址: https://gitcode.com/gh_mirrors/we/wechat-toolbox 你是否为微信好友管理而烦恼&#xff1f;面对成百…...

Maven配置翻车实录:从JDK15降级到1.8,我的Maven为何‘记忆’犹新?附3.8.4修复方案

Maven环境变量疑难解析&#xff1a;当JDK降级遭遇版本记忆效应 那天深夜&#xff0c;我的IDE突然弹出一连串红色错误——一个早已卸载的JDK15居然阴魂不散地干扰着当前项目。明明系统环境变量显示JAVA_HOME指向JDK1.8&#xff0c;java -version命令也确认运行在1.8环境&#xf…...

智慧海上识别数据集 海上交通管理船舶识别标注数据 海事监控系统 采砂船识别 集装箱货船识别数据集 游船识别数据集 yolo数据集第10199期

海上船舶数据集核心信息表 类别 Classes (6) 类别&#xff08;6&#xff09; bulk cargo carrier 散装货船 container ship 集装箱船 fishing boat 渔船 general cargo ship 杂货船 ore carrier 矿石运输船 passenger ship 客船信息类别具体内容数据集类别目标检测类数据集&…...

外企面试求生指南:除了刷LeetCode,Booking、eBay们还看重什么?(附系统设计/AB测试避坑点)

外企技术面试突围战&#xff1a;超越算法题的6个关键能力图谱 去年帮一位朋友复盘Booking.com的面试失败经历时&#xff0c;发现一个有趣现象&#xff1a;他在LeetCode周赛排名前5%&#xff0c;却倒在一道看似简单的流量控制算法题上。面试官给的反馈是"边界条件处理不成熟…...

中药湿疹膏

看着宝宝娇嫩的皮肤上泛起一片片红疹&#xff0c;因瘙痒而哭闹不休、夜不能寐&#xff0c;初为父母的你&#xff0c;是否感到心急如焚却又束手无策&#xff1f;湿疹&#xff0c;这个困扰着无数0-3岁婴幼儿家庭的常见皮肤问题&#xff0c;背后是家长们深深的焦虑与对安全有效产品…...

Phi-3.5-mini-instruct效果对比:同尺寸模型中RepoQA得分领先12.3%实证

Phi-3.5-mini-instruct效果对比&#xff1a;同尺寸模型中RepoQA得分领先12.3%实证 1. 轻量级大模型新标杆 Phi-3.5-mini-instruct是微软最新推出的开源指令微调大模型&#xff0c;专为轻量化部署场景设计。这款模型在保持紧凑体积的同时&#xff08;仅7.6GB&#xff09;&…...