Java实现 LeetCode 567 字符串的排列(滑动窗口,处理区间内的字符数量)
567. 字符串的排列
给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。
换句话说,第一个字符串的排列之一是第二个字符串的子串。
示例1:
输入: s1 = “ab” s2 = “eidbaooo”
输出: True
解释: s2 包含 s1 的排列之一 (“ba”).
示例2:
输入: s1= “ab” s2 = “eidboaoo”
输出: False
注意:
输入的字符串只包含小写字母
两个字符串的长度都在 [1, 10,000] 之间
class Solution {
     public boolean checkInclusion(String s1, String s2) {
        if(s2.length()<s1.length())return false;
        int[] book=new int[26];
        for (int i=0;i<s1.length();i++)
        {
            book[s1.charAt(i)-'a']++;
        }
        int[] book1=new int[26];
        for (int i=0;i<s1.length();i++)
        {
            book1[s2.charAt(i)-'a']++;
        }
        if(check(book,book1))return true;
        int left=0,right=s1.length();
        while (right<s2.length())
        {
            book1[s2.charAt(left++)-'a']--;
            book1[s2.charAt(right++)-'a']++;
            if(check(book,book1))return true;
        }
        return false;
    }
    private boolean check(int[] book, int[] book1) {
        for (int i=0;i<26;i++)
        {
            if(book[i]!=book1[i])return false;
        }
        return true;
    }
}
												
											Java实现 LeetCode 567 字符串的排列(滑动窗口,处理区间内的字符数量)的更多相关文章
- Leetcode 567.字符串的排列
		
字符串的排列 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列. 换句话说,第一个字符串的排列之一是第二个字符串的子串. 示例1: 输入: s1 = "ab&q ...
 - LeetCode:字符串的排列【567】
		
LeetCode:字符串的排列[567] 题目描述 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列. 换句话说,第一个字符串的排列之一是第二个字符串的子串. 示例1: ...
 - 【LeetCode】567. 字符串的排列
		
567. 字符串的排列 知识点:字符串:滑动窗口 题目描述 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列.如果是,返回 true :否则,返回 false . 换句 ...
 - 力扣567.字符串的排列—C语言实现
		
题目 来源:力扣(LeetCode)
 - [LeetCode] 239. Sliding Window Maximum 滑动窗口最大值
		
Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...
 - [Leetcode]双项队列解决滑动窗口最大值难题
		
这道题是从优先队列的难题里面找到的一个题目.可是解法并不是优先队列,而是双项队列deque 其实只要知道思路,这一道题直接写没有太大的问题.我们看看题 给定一个数组 nums,有一个大小为 k 的滑动 ...
 - [leetcode]239. Sliding Window Maximum滑动窗口最大值
		
Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...
 - Java实现 LeetCode 387 字符串中的第一个唯一字符
		
387. 字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = ...
 - Java实现 LeetCode 31下一个排列
		
31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许 ...
 
随机推荐
- 【Spark】部署流程的深度了解
			
文章目录 Spark核心组件 Driver Executor Spark通用运行流程图 Standalone模式运行机制 Client模式流程图 Cluster模式流程图 On-Yarn模式运行机制 ...
 - Excel函数有门槛,是编程
			
Excel的公式体系,最简单的就是输入“=1+1”.“=2*3”.看起来没有门槛,但实质上是函数式编程,Range写Formula,Power Query写M语言,VBA里写Function.通过菜单 ...
 - 在微服务框架Demo.MicroServer中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统
			
1.APM工具的选取 Apm监测工具很多,这里选用网上比较火的一款Skywalking. Skywalking是一个应用性能监控(APM)系统,Skywalking分为服务端Oap.管理界面UI.以及 ...
 - 内网穿透访问Vue项目的时候出现Invalid Host header解决办法
			
适用场景: 在本地的Vue-cli3项目, 需要其他人浏览. 如果没有外网的服务器, 可以把自己的电脑当做服务器. 这时候需要外网的人能访问到自己的电脑. Mac内网穿透工具:natapp Inval ...
 - java ->IO流_字符流
			
字符流 经过前面的学习,我们基本掌握的文件的读写操作,在操作过程中字节流可以操作所有数据,可是当我们操作的文件中有中文字符,并且需要对中文字符做出处理时怎么办呢? 字节流读取字符的问题 通过以下程序读 ...
 - video 全屏,播放,隐藏控件。
			
requestFullscreen全屏具体实现 1.进入全屏 function full(ele) { if (ele.requestFullscreen) { ele.requestFullscre ...
 - 深入理解JS中的对象(三):class 的工作原理
			
目录 序言 class 是一个特殊的函数 class 的工作原理 class 继承的原型链关系 参考 1.序言 ECMAScript 2015(ES6) 中引入的 JavaScript 类实质上是 J ...
 - 开发一个maven脚手架
			
写在前面 开发新项目就需要搭建新工程,但是搭建新工程的这个过程是非常繁琐浪费时间的,并且不可避免的需要踩坑.更可怕的是,如果是在一个团队中,每新起一个项目都由不同的开发人员去自定义的搭建工程结构,那么 ...
 - git:error: Your local changes to the following files would be overwritten by merge:
			
最近用git在服务器.github.本地更新代码的时候,因为频繁修改偶尔出现这个错误 覆盖本地的代码: git stash git pull git stash pop 保留对服务器上的修改: git ...
 - Angular路由知识点
			
路由跳转 1. 模板方式:<ANY routerLink='/ucenter'></ANY> 2. 脚本方式: constructor(private router:Rou ...