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

力扣-字母异位词

        这里我也是没有太懂,只懂个大概,先统计p和当前窗口的字符,后主要在窗口大小固定为 p.length(),在 s 上滑动做文章,在s里找到p的长度大小,最后直接比较两个频率数组来判断异位词

定长窗口做法

class Solution {public List<Integer> findAnagrams(String s, String p) {// 存储结果的列表List<Integer> ans = new ArrayList<>();// 创建两个计数器数组,用于统计字符出现频率int[] cntP = new int[26]; // 统计字符串 p 的字符频率int[] cntS = new int[26]; // 统计 s 的子串的字符频率// 统计 p 中每个字符的出现次数for (char c : p.toCharArray()) {cntP[c - 'a']++; // 将字符映射到 0-25 的索引}// 使用滑动窗口遍历字符串 sfor (int right = 0; right < s.length(); right++) {// 将当前字符加入窗口(右边界扩展)cntS[s.charAt(right) - 'a']++;// 计算当前窗口的左边界int left = right - p.length() + 1;// 如果窗口长度不足 p.length(),跳过后续处理if (left < 0) {continue;}// 检查当前窗口是否是 p 的异位词if (Arrays.equals(cntS, cntP)) {ans.add(left); // 如果是,记录起始索引}// 将左边界字符移出窗口(为下一次窗口滑动做准备)cntS[s.charAt(left) - 'a']--;}return ans;}
}

http://www.dtcms.com/a/310808.html

相关文章:

  • gpu 优化
  • 从删库到跑路?MyBatis3逻辑删除实战:优雅规避数据灾难
  • 一致连续性背后的直觉是什么?
  • 高速信号设计之 DDR5 篇
  • 【unity实战】简易的车辆控制系统
  • 从零开始:Kaggle 竞赛实战入门指南
  • 鸿蒙系统PC安装指南
  • 【RH124 问答题】第 9 章 控制服务和守护进程
  • 测试分类:详解各类测试方式与方法
  • 告别“AI味”图像!最新开源AI模型FLUX.1-Krea实现真实光影生成
  • 【n8n】如何跟着AI学习n8n【05】:Merge节点和子流程调用
  • Prim算法
  • 交叉编译简介
  • 【JAVA面试】基础篇
  • 广东省省考备考(第六十三天8.1)——资料分析、数量(强化训练)
  • 【AI应用】 能源保供战:AI大模型如何守护万家灯火?
  • Day37| 完全背包、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶)
  • 流式编程学习思路
  • 疯狂星期四文案网第26天运营日记
  • 【PyTorch✨】01 初识PyTorch
  • 潜伏式 AGV 与叉车 AGV 充电桩的技术差异及应用分析
  • 在国内注册谷歌邮箱(资源是免费下载的)
  • 第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2021年11月27日真题
  • Linux文件系统:从内核到缓冲区的奥秘
  • PyTorch深度学习入门记录8
  • 逻辑回归参数调优实战指南
  • MeshDepthMaterial
  • AI论文工具的应用与发展(2025年总结)
  • SQL数据库连接Python实战:疫情数据指挥中心搭建指南
  • 嵌入式学习之硬件——51单片机 1.0