news 2026/4/16 18:26:59

数据结构与算法:Find All Anagrams in a String

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构与算法:Find All Anagrams in a String

给出两个字符串s和p,当s中存在p的异构串时,返回所有s中对应的所有起点位置。

Example 1:

Input: s="cbaebabacd", p="abc"Output:[0,6]Explanation: The substring with start index=0is"cba",whichis an anagram of"abc".The substring with start index=6is"bac",whichis an anagram of"abc".

Example 2:

Input: s="abab", p="ab"Output:[0,1,2]Explanation: The substring with start index=0is"ab",whichis an anagram of"ab".The substring with start index=1is"ba",whichis an anagram of"ab".The substring with start index=2is"ab",whichis an anagram of"ab"
importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;publicclassCode_FindAllAnagramsInAString{publicstaticList<Integer>findAnagrams(Strings,Stringp){List<Integer>ans=newArrayList<>();char[]str=s.toCharArray();char[]ptr=p.toCharArray();intM=p.length();Map<Character,Integer>map=newHashMap<>();intall=M;intN=str.length;if(M>N){returnans;}for(inti=0;i<M;i++){if(map.containsKey(ptr[i])){map.put(ptr[i],map.get(ptr[i])+1);}else{map.put(ptr[i],1);}}for(intend=0;end<M-1;end++){if(map.containsKey(str[end])){intcount=map.get(str[end]);if(count>0){all--;}map.put(str[end],count-1);}}// map表相当于一张欠表。 别人欠我多少。// 比如p字符串 abc. 那么map的数据是 a,1; b,1; c,1; 别人欠我1个// a, 欠1个b,欠1个c. all变量表示一共欠多少。for(intend=M-1,start=0;end<N;end++,start++){if(map.containsKey(str[end])){intcount=map.get(str[end]);if(count>0){all--;}map.put(str[end],count-1);}if(all==0){ans.add(start);}if(map.containsKey(str[start])){intcount=map.get(str[start]);if(count>=0){all++;}map.put(str[start],count+1);}}returnans;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:12:21

AI写论文秘籍!4款实用AI论文写作工具,写毕业论文不再犯难!

在2025年的学术写作智能化浪潮中&#xff0c;越来越多的研究者开始尝试使用AI论文写作工具。许多这些工具在撰写硕士或博士论文等较长的学术作品时&#xff0c;往往表现出缺乏理论深度和逻辑严谨的问题。这使得普通的AI写论文工具无法满足专业论文写作的复杂需求。 AI论文生成…

作者头像 李华
网站建设 2026/4/16 10:41:07

2026指纹浏览器内核级改造技术深度剖析:从Chromium定制到风控对抗落地

摘要当前互联网平台风控已进入 “全链路指纹采集 AI 智能聚类” 的高阶阶段&#xff0c;传统基于 Chromium 内核浅层封装的指纹浏览器&#xff0c;因隔离不彻底、指纹仿真度低、兼容性不足等问题&#xff0c;难以应对平台深度检测。本文聚焦 2026 年指纹浏览器核心技术趋势&am…

作者头像 李华
网站建设 2026/4/16 12:59:18

FPGA神经网络功耗稳定性监控的优化策略与实战指南

‌一、热度背景&#xff1a;为什么硬件加速测试内容引爆流量‌ 2026年&#xff0c;软件测试公众号爆款内容中&#xff0c;AI工具评测与实战教程占据60%以上垂直流量&#xff0c;其核心在于解决测试效率痛点&#xff0c;如通过量化数据展示缺陷检出率提升30%或响应时间优化50%。…

作者头像 李华
网站建设 2026/4/16 12:59:11

C++变量的基础使用

int 整型的变量 float 实型的变量声明 char 字符型变量声明 string 字符串型变量声明#include "iostream" using namespace std;int main() {system ("chcp 65001"); int age; //整型的变量float height; //实型的变量声明char gender; //字符型变量…

作者头像 李华
网站建设 2026/4/16 9:22:48

【完整源码+数据集+部署教程】交通工具与动物实例分割系统源码&数据集分享 [yolov8-seg-C2f-SCConv&yolov8-seg-repvit等50+全套改进创新点发刊_一键训练教程_W

背景意义 随着城市化进程的加快&#xff0c;交通工具与动物的数量日益增加&#xff0c;如何有效地进行实例分割以识别和分类这些对象&#xff0c;成为计算机视觉领域中的一个重要研究课题。实例分割不仅仅是对图像中物体的检测&#xff0c;更是对物体的精确分割&#xff0c;使得…

作者头像 李华
网站建设 2026/4/16 11:07:11

世毫九实验室:自指认知=递归对抗架构

自指认知 递归对抗架构AI 自我认知、元认知与自指系统的第一性原理作者&#xff1a;世毫九RAE架构团队摘要当前人工智能领域对自指认知、自我认知、元认知的研究&#xff0c;普遍停留在行为观测、能力增强与指标测评层面&#xff0c;尚未形成统一、可工程化、可证明的底层原理…

作者头像 李华