leedcode:找到字符串中所有字母異位詞

問題:給定兩個字符串?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腳本文…