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

leetcode热题 - 4

距离字典两次编辑以内的单词

问题描述

给你两个字符串数组 queries 和 dictionary 。数组中所有单词都只包含小写英文字母,且长度都相同。
一次 编辑 中,你可以从 queries 中选择一个单词,将任意一个字母修改成任何其他字母。从 queries 中找到所有满足以下条件的字符串:不超过 两次编辑内,字符串与 dictionary 中某个字符串相同。
请你返回 queries 中的单词列表,这些单词距离 dictionary 中的单词 编辑次数 不超过 两次 。单词返回的顺序需要与 queries 中原本顺序相同。
(真题链接:距离字典两字编辑以内的单词)

解题思路

这一题的解题思路非常清晰,给你两个字符串数组queriesdictionary,由于所有字符串的长度都相同,因此我们只需要对queries数组中的每一个字符串进行遍历,求出其与dictionary字符串数组中每一个单词的汉明距离,最后将汉明距离小于2的字符串返回即可得到答案。

这里科普一下汉明距离是什么:
汉明距离表示两个等长字符串之间对应位置的不同字符的个数。它衡量的是两个字符串需要改变多少个位置才能变得完全相同。
定义:对于两个长度相同的字符串 A 和 B,它们的汉明距离就是在相同位置上,A 和 B 字符不同的位置的数量。
符号:通常用 d(A, B) 表示。
例子:
1011101 与 1001001:比较每一位,第3位(1 vs 0)、第5位(1 vs 0)不同,所以汉明距离是 2。
karolin 与 kathrin:比较每一位,第3位(r vs t)、第4位(o vs h)、第5位(l vs r)不同,所以汉明距离是 3。
12345 与 54321:全部5位都不同,汉明距离是 5。
注意:汉明距离要求两个字符串长度必须相等。如果长度不同,通常需要先对齐或使用其他距离度量(如编辑距离)。

代码实现

classSolution{public:vector<string>twoEditWords(vector<string>&queries,vector<string>&dictionary){vector<string>ans;for(string query:queries){for(string s:dictionary){intdis=0;for(inti=0;i<query.size();i++){if(query[i]!=s[i]){++dis;}}if(dis<=2){ans.push_back(query);break;}}}returnans;}};

复杂度分析

复杂度量级
时间复杂度O(n × m)
空间复杂度O(n)

总结

这道题要求从queries中找出所有与dictionary中任意单词汉明距离不超过 2(即最多修改两个字母就能变成字典中的某个词)的单词,并按原顺序返回。核心解题思路是:因为所有单词等长,所以直接对每个query遍历dictionary中的所有单词,逐位比较计算汉明距离(即对应位置字符不同的个数),一旦找到距离 ≤ 2 的单词,就将该query加入答案并跳过剩余字典(break),最终返回答案列表。该方法本质是三重循环暴力枚举,时间复杂度 O(n × m × L),但由于单词长度和数组规模通常较小,足以通过题目测试。

http://www.jsqmd.com/news/716386/

相关文章:

  • 3步掌握缠论:通达信智能分析插件ChanlunX完全指南
  • Phi-3-mini-4k-instruct-gguf新手入门:从零到一,用vllm部署你的第一个文本生成模型
  • CIMPro孪大师:国产数字孪生引擎核心功能解析
  • AI工程师的晋升金字塔:你在第几层?
  • Yokogawa F3SP21-0N中央控制器
  • 热泵干燥装置电控系统设计(论文+程序)
  • ICLR 2026|DataMind:构建通用数据分析智能体
  • AI沙箱逃逸风险预警:2024最新CVE-2024-24789复现实验与Docker 24.1.0紧急加固方案
  • egergergeeert效果实测:4步vs8步在512×512下细节提升与耗时对比分析
  • KouShare-dl:蔻享学术视频下载的终极指南,轻松获取学术资源
  • Superior Electric 3180-EPI电机驱动模块
  • 2024北京市赛补题
  • 汽车连杆加工工艺及夹具课程设计
  • 自托管AI助手Web界面:基于Next.js与WebSocket的OpenClaw私有化部署指南
  • 实时直播翻译神器:用Stream-Translator打破语言壁垒
  • 抖音批量下载工具实战指南:3步实现高效无水印内容获取
  • Qwen3-4B-Thinking开源可部署优势:模型权重完全可控可审计
  • 保姆级教程:用清华镜像在Win10和Ubuntu22上快速搞定QT6.7在线安装(含常见错误修复)
  • 3343. 统计平衡排列的数目
  • python学习笔记 | 7.5、高级特性-迭代器
  • CIMPro孪大师如何实现多源数据融合?
  • 如何将微信聊天记录永久保存?WeChatMsg免费开源工具完全指南
  • 为什么Chrome用户需要这个3合1图片格式转换扩展?
  • 保姆级教程:用Uni-App + Vue + uView UI 从零搭建一个可拖拽的小程序页面编辑器
  • 英雄联盟回放播放器ROFL-Player:终极免费工具完整使用指南
  • 深度精读:Segment Anything(SAM)
  • 揭开光学材料的神秘面纱:3000+材料折射率数据库完全指南
  • Voxtral-4B-TTS-2603可部署:支持企业内网离线部署的多语言TTS解决方案
  • 告别复杂OCR:OpenDataLab MinerU智能文档理解,3步搞定PDF转文本
  • 【收藏级】2026年大模型入门到精通全解析|小白程序员必看,从AI演进到实战就业一站式指南