问题:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。

package com.text;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;import com.alibaba.fastjson.JSONObject;public class findAnagrams {public static void main(String[] args) {findAnagrams("cbaebabacd","abc");}public static List<Integer> findAnagrams(String s, String p) {List<Integer> list=new ArrayList<Integer>();int slen=s.length();int plen=p.length();//p的长度大于s就返回if(plen>slen){return list;}//将p的字符存储到map中,key是字符,value是出现的次数Map<Character,Integer> pMap=new HashMap<Character,Integer>();for(int i=0;i<p.length();i++){Integer pNum=pMap.getOrDefault(p.charAt(i), 0);pMap.put(p.charAt(i),pNum+1);}//截取s串的起始坐标int endIndex=0;//存储截取的S串中字符出现的次数Map<Character,Integer> sMap=new HashMap<Character,Integer>();while(endIndex+plen<=slen){String substr= s.substring(endIndex,endIndex+plen);//下标等于0的时候需要全量存储if(endIndex==0){for(int i=0;i<substr.length();i++){Integer sNum=sMap.getOrDefault(substr.charAt(i), 0);sMap.put(substr.charAt(i),sNum+1);}}else{//不等于0的时候相当于下标右移//前一个元素出现次数需要减1,如果次数等于0需要移除,否则影响相等的校验//最后一个需要加1char removeKey = s.charAt(endIndex-1);Integer sNum=sMap.getOrDefault(removeKey, 0);if(sNum-1==0) {sMap.remove(removeKey);}else {sMap.put(removeKey,sNum-1);}char addKey = substr.charAt(plen-1);Integer sNum1=sMap.getOrDefault(addKey, 0);sMap.put(addKey,sNum1+1);}//判断是否相等两个map//会进行key和value的全变比较if(sMap.equals(pMap)) {list.add(endIndex);}endIndex++;}System.out.println(JSONObject.toJSONString(list));return list;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89185.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89185.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89185.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云Flexus+DeepSeek征文|基于华为云 Flexus Dify平台开发AI Agent的详细流程

目录 一、Dify 应用开发平台 1.1 什么是 Dify&#xff1f; 1.2 Dify 平台优势 二、构建 AI Agent 2.1 创建智能客服助手 2.2 配置 LLM组件 三、访问智能应用 3.1 应用发布 3.2 智能对话 四、API 调用智能客服助手 4.1 配置 API 访问接口 4.2 调用智能客服助手API …

【知识图谱构建系列7】:结果评价(1)

文章目录 前言前情提要三元组提取结果评价脚本代码分析几分钟后前言 翻了一下记录,发现咱的知识图谱构建已经接近10天没有搞了。时间也是过得真快啊。但这毕竟是咱未来产生论文的主要阵地,所以得赶紧把节奏给拾起来哈~ 前情提要 我们已经可以在mistral模型的基础上,跑通提…

BT下载工具 qBittorrent v5.1.1.10,便携无广告,BT下载速度翻倍

[软件名称]: BT下载工具 qBittorrent v5.1.1.10 [软件大小]: 15.9 MB [下载通道]: 夸克盘 | 迅雷盘 软件介绍 &#x1f525;《qBittorrent增强版》v5.1.1.10便携版&#xff5c;BT下载神器&#xff0c;速度与隐私兼得&#x1f310; ✨ 核心优势&#xff1a; ✅ 无视版权限制…

裂变与重构:2025年大模型生态全景透视及未来趋势研判

1. 2025上半年&#xff1a;大模型生态的裂变时刻 1.1 技术范式革命&#xff1a;从生成到推理的跨越 2025年1月DeepSeek的横空出世&#xff0c;标志着大模型正式进入"推理时代"。这款国产模型在发布首周即突破1亿用户量级&#xff0c;其核心突破在于将传统生成能力升…

【docker】如何正确拉取langgraph-api

加这些配置都没用 # 设置代理环境变量 export HTTP_PROXY=http://127.0.0.1:7890 export HTTPS_PROXY=http://127.0.0.1:7890 # 设置更长的超时时间 export DOCKER_CLIENT_TIMEOUT=

PIXHAWK(ardupilot4.52)上传航点的bug

起因是查看飞控日志时发现地面站上传的平行航线&#xff0c;在日志看到航线却并不是平行的。 然后对比了一下地面站上传的航点信息跟飞控读取到的航点信息 发现经纬度只有前几位能够对应上&#xff0c;后几位都对应不上&#xff0c;两个点之间相差了50公分。地面站工程师认为地…

车载ECU刷写文件格式汇总详解

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 做到欲望极简&#xff0c;了解自己的真实欲望&#xff0c;不受外在潮流的影响&#xff0c;不盲从&#x…

Redis核心知识详解:从全局命令到高级数据结构

一、Redis全局命令详解 1.1 键查看与管理 dbsize&#xff1a;高效获取键总数&#xff08;O(1)操作&#xff09; 127.0.0.1:6379> dbsize (integer) 8 keys&#xff1a;生产环境避免使用&#xff08;O(n)操作&#xff09; # 查找user开头的键&#xff08;不推荐生产使用…

【网络】Linux 内核优化实战 - net.ipv4.tcp_mem

目录 参数结构与含义与缓冲区大小参数的区别内存管理机制详解1. 内存使用状态与触发逻辑2. 与其他参数的协同关系 典型调整场景与配置示例场景 1&#xff1a;高并发低带宽服务&#xff08;如 API 网关&#xff0c;数万连接但单连接流量小&#xff09;场景 2&#xff1a;高带宽低…

插入排序的简单介绍

今天给大家简单介绍一下插入排序。 插入排序&#xff0c;其基本思想是将未排序的数据逐步插入到已排序序列中的合适位置&#xff0c;从而使整个序列逐渐有序。 下面我们看一个排序的过程&#xff08;升序&#xff09;&#xff0c;给定一个int类型的数组&#xff0c;利用插入排…

docker搭建minio和python使用minio

1 准备工作 1.创建目录 [rootk8s-storage tmp]# mkdir -pv minio/{data,conf} mkdir: created directory ‘minio’ mkdir: created directory ‘minio/data’ mkdir: created directory ‘minio/conf’[rootk8s-storage minio]# chmod 777 -R *2.生成https证书 openssl req…

开源代码修复新标杆——月之暗面最新开源编程模型Kimi-Dev-72B本地部署教程,自博弈修复 Bug

一、介绍 Kimi-Dev-72B是由月之暗面&#xff08;Moonshot AI&#xff09;最新开源的AI编程模型&#xff0c;专为软件工程任务设计&#xff0c;并登顶 SWE-bench Verified 基准测试榜首&#xff0c;超越 DeepSeek-R1 等模型&#xff0c;成为当前开源代码模型的 SOTA&#xff1a…

微服务架构之基本设计原则

作为系统架构师&#xff0c;在进行架构设计时需要遵循一系列经过实践验证的核心原则&#xff0c;这些原则贯穿于需求分析、模块划分、技术选型和系统演进的全流程。以下从核心设计原则、架构特性原则、工程实践原则三个维度&#xff0c;结合具体案例展开说明&#xff1a; 一、…

Wpf布局之WrapPanel面板!

文章目录 前言一、引言二、使用步骤 前言 Wpf布局之WrapPanel面板&#xff01; 一、引言 WrapPanel面板以一次一行或一列的方式布置控件&#xff01; 二、使用步骤 WrapPanel面板Orientation属性默认是"Horizontal"&#xff0c;将控件从左向右进行排列&#xff…

QEMU运行RISCV版Ubuntu

宿主机为ubuntu20.04&#xff0c;推荐ubuntu 20.04 risc-v版&#xff0c; 宿主机为ubuntu24.04&#xff0c;推荐ubuntu 24.04 risc-v版&#xff0c; 安装ubuntu 24.04 risc-v基本步骤&#xff1a; 1&#xff0c; sudo apt update sudo apt install opensbi qemu-system-misc…

【LeetCode 热题 100】239. 滑动窗口最大值——(解法一)滑动窗口+暴力解

Problem: 239. 滑动窗口最大值 题目&#xff1a;给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 文章目录 整体思路完整代码时空…

攻防世界-MISC-red_green

知识点 1.pngLSB隐写 步骤 方法一&#xff1a;zsteg 打开附件&#xff0c;是一张图片&#xff0c;打开看不懂&#xff08;其实由两种颜色构成&#xff0c;0和1&#xff09;&#xff0c;用zsteg查看&#xff0c;发现隐写了一张jpg图片&#xff0c;使用zsteg提取。打开jpg图片…

归因问答-如何进行自动评估

归因模型函数g的形式化表示 输入&#xff1a;用户问题q 输出&#xff1a;(a, p), 其中a为答案&#xff0c;p为原始文章中支持答案a的段落。 1&#xff09;单样本归因 针对输入问题q&#xff0c;如何评估归因模型g输出中段落p是对答案a的正确归因。 在论文arributed qa中&…

基于vue+View UI的组织机构选择

1、效果 1、代码 <template><Button type"primary" click"modal true">点击选择</Button><div v-if"selectedArr.length > 0"><p>已选择项&#xff1a;</p><div v-for"(item, index) in sel…

人大金仓Kingbase数据库KSQL 常用命令指南

人大金仓Kingbase数据库KSQL 常用命令指南 1. 连接与基本操作 1.1 连接数据库 # 基础语法 ksql -U 用户名 -d 数据库名 -h 主机名 -p 端口号 # 示例 ksql -U system -d testdb -h 127.0.0.1 -p 543211.2 执行SQL脚本 # 基础语法 ksql -U <用户名> -W -f <SQL脚本文…