leetcode 热题 100_找到字符串中所有字母异位词

题解一:

        滑动窗口:类似于字符串匹配,但匹配异位词需要包含相同的字母及个数,可以分别用两个数组存储字符串s滑动窗口和字符串p的字母及个数,再用Array.equals()进行比对。对于s.length()<p.length()的情况需要特判。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> result = new ArrayList<>();int sLen = s.length();int pLen = p.length();if (sLen < pLen) return new ArrayList<>();int[] sArray = new int[26];int[] pArray = new int[26];for (int i = 0; i < pLen; i++) {pArray[p.charAt(i) - 'a']++;}for (int i = 0; i < pLen; i++) {sArray[s.charAt(i) - 'a']++;}if (Arrays.equals(pArray, sArray)) result.add(0);for (int i = 0; i < sLen - pLen; i++) {sArray[s.charAt(i) - 'a']--;sArray[s.charAt(i + pLen) - 'a']++;if (Arrays.equals(pArray, sArray)) result.add(i + 1);}return result;}
}

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

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

相关文章

【python】python用户管理系统[简易版](源码+报告)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

怎么异地共享文件?

不同地点的团队成员之间共享文件是现代企业中常见的需求之一。随着分布式团队的不断增加&#xff0c;找到一种安全、高效的方式来实现异地共享文件变得尤为重要。本文将介绍一种名为【天联】的工具&#xff0c;它可以帮助团队成员在异地互相共享文件。 【天联】是一种专门为异地…

.NET Core Web API扩展框架

在.NET Core Web API中&#xff0c;你可以使用各种扩展框架和库来增强应用程序的功能和性能。这些扩展框架可以涵盖多个方面&#xff0c;包括认证与授权、异常处理、日志记录、API文档生成、性能监控等。以下是一些常用的.NET Core Web API扩展框架&#xff1a; 认证与授权 AS…

Corel 会声会影 2023 激活码 会声会影 2023 序列号生成器

会声会影 2023 已经出来很长时间了&#xff0c;但是对它的热爱一直持续不减&#xff0c;今天我给大家带来2023版本为用户带来的多个全新功能&#xff0c;可以更好的编辑视频&#xff0c;不过软件还是付费的&#xff0c;为此我带来了会声会影 2023序列号生成器&#xff0c;可以轻…

STM32 | STM32时钟分析、GPIO分析、寄存器地址查找、LED灯开发(第二天)

STM32 第二天 一、 STM32时钟分析 寄存器&#xff1a;寄存器的功能是存储二进制代码&#xff0c;它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码&#xff0c;故存放n位二进制代码的寄存器&#xff0c;需用n个触发器来构成 在计算机领域&#x…

数码管的动态显示(一)

1.原理 把每一个数码管闪烁的时间设置为1ms&#xff0c;肉眼观察不到就会认为6个数码管在同时闪烁。 实验目标&#xff1a; 使用6位8段数码管实现数码管的动态显示&#xff0c;显示的内容就是0-999_999。当计数到最大值&#xff0c;让他归零&#xff0c;然后循环显示。每0.1秒…

Doris2.0 部署流程、遇到的问题及1.0升级至2.0流程整理

背景 Doris 1.0 版本总是出现副本损坏问题&#xff0c;机器资源充足&#xff0c;FE 和 BE 数据足够&#xff0c;每日的数据量一般&#xff0c;但是总是隔三差五出现入库时副本损坏问题。Doris 已经发布了2.0 版本&#xff0c;本周又发布了新版本 2.0.5。升级 Doris 能否解决副…

Jenkins 安装

目录 1、部署 Jenkins 安装配置 Jenkins 解锁 Jenkins 安装 Jenkins 插件 创建管理员账号 手动安装插件 2、Jenkins 从 GitLat 拉取代码 安装 Jenkins 插件 在 node-16 上生成密钥对 把公钥配置到 gitlab 上 把 root 用户私钥配置到 jenkins 上 Jenkins 创建一个任务…

命名空间(namespace)

定义 在C中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一个特性&#xff0c;用于封装代码并避免名称冲突。命名空间可以看作是一个容器&#xff0c;其中可以包含类、函数、变量、常量、其他命名空间等。通过使用命名空间&#xff0c;我们可以更好地组织代码&…

C#进阶高级语法之LINQ :Lambda 表达式

C# 中的 LINQ (Language Integrated Query) 提供了一种声明性的数据查询和操作方法&#xff0c;它允许开发人员对集合、数据库等数据源进行查询和操作&#xff0c;而不需要编写复杂的循环和手动编码。Lambda 表达式与 LINQ 紧密相关&#xff0c;它提供了一种简洁的方式来定义匿…

职场中“祖传代码”的处理建议

程序员是如何看待“祖传代码”的&#xff1f; 祖传代码的由来 在实际的程序员工作中&#xff0c;祖传代码是常见的。因为真正的互联网职场生活中&#xff0c;业务变动调整频繁&#xff0c;每到一个新的业务线&#xff0c;第一件事就是熟悉现有工程代码&#xff0c;看旧文档等…

面试经典150题 -- 回溯 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 17 . 电话号码的字母组合 1 . 先创建一个下标 与 对应字符串映射的数组&#xff0c;这里使用hash表进行映射也是可以的 &#xff1b; 2 . 对于回溯 &#xff0c;…

论人类饮食多样性的偏好:为何人们倾向于每一餐都吃得不同

人类的饮食行为深深植根于生物进化、文化传承和社会心理等多个维度。细心观察日常生活&#xff0c;我们会发现大部分人在饮食选择上有着显著的多样化倾向&#xff0c;即使不是餐餐大鱼大肉&#xff0c;也会尽可能让每一顿饭的内容有所不同。本文旨在深入探讨这种饮食多样化偏好…

下班前几分钟,我彻底弄懂了YAML

目录 1. YAML语法1.1 Scalars1.2 Array1.3 Object1.4 复杂结构1.5 高级用法1.5.1 浮点数特殊值1.5.2 锚点与别名1.5.3 合并键 2. PyYAML的使用2.1 解析YAML2.2 生成YAML 3. YAML和JSON的区别Ref 1. YAML语法 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种用…

JavaScript编写幻灯片

问题&#xff1a;创建一段带有幻灯片效果的JavaScript代码&#xff0c;要包含一个有4幅图片&#xff0c;设置定时器&#xff0c;每隔5秒切换一次图片&#xff0c;如果用户单击开始按钮&#xff0c;定时器启动&#xff0c;并开始进行图片切换&#xff0c;如果用户单击停止按钮&a…

Java实战:Spring Boot接口重试机制实现

本文将详细介绍如何在Spring Boot应用程序中实现接口重试机制。我们将探讨重试机制的基本概念&#xff0c;以及如何使用Spring Boot和第三方库来实现接口的重试功能。此外&#xff0c;我们将通过具体的示例来展示如何在Spring Boot应用程序中配置和使用接口重试机制&#xff0c…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念&#xff1a;整数类型指数值是没有小数部分的&#xff0c;包含正整数、负整数和0 (2)进制种类&#xff1a;十进制--->234、5…

Effective C++ 学习笔记 条款08 别让异常逃离析构函数

C并不禁止析构函数吐出异常&#xff0c;但它不鼓励你这样做。这是有理由的&#xff0c;考虑以下代码&#xff1a; class Widget { public:// ...~Widget() { /* ... */ } // 假设这个可能吐出一个异常 };void doSomething() {std::vector<Widget> v;// ... } // v…

【网站项目】139选课排课系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Redis 群集

简介 在现在的互联网大潮中&#xff0c;NoSQL可谓家喻户晓&#xff0c;Redis作为NoSOL大军中极其重要的一员&#xff0c;是我们走向架构道路的一条必经之路。 Redis介绍 Redis 数据库是一个非关系型数据库&#xff0c;在正式学习Redis之前&#xff0c;我们先来了解关系型数据库…