zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    
  • 相关阅读:
    javascript正则表达式对象、窗体对象11.0
    springboot~不用模板执行html文件
    springboot-jar-web
    springboot-war
    springboot-jar
    idea~创建maven webapp项目
    简单日志项目
    loback.xml 在idea中代码自动完成
    mysql 时区问题导致的时间相差14小时
    mariadb vs mysql
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075410.html
Copyright © 2011-2022 走看看