算法_每日一题(9.12)

简介: 算法_每日一题(9.12)

一、leetcode567. 字符串的排列

给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。

换句话说,s1 的排列之一是 s2 的 子串 。

示例 1:

输入:s1 = “ab” s2 = “eidbaooo” 输出:true 解释:s2 包含 s1 的排列之一 (“ba”). 示例 2:

输入:s1= “ab” s2 = “eidboaoo” 输出:false

提示:

1 <= s1.length, s2.length <= 104 s1 和 s2 仅包含小写字母


用到滑动窗口知识,通过比较n1长度内的字符中种类来进行比较

import java.util.Arrays;
class Solution {
    public boolean checkInclusion(String s1, String s2) {
        int n1 = s1.length(), n2 = s2.length();
        if (n1 > n2) {
            return false;
        }
        int num1 [] = new int [26];
        int num2 [] = new int [26];
        for(int i =0;i<n1;i++){
            num1[s1.charAt(i)-'a']++;
            num2[s2.charAt(i)-'a']++;
        }
        if(Arrays.equals(num1,num2)){
            return true;
        }
        for(int i =n1;i<n2;i++){
            num2[s2.charAt(i)-'a']++;
            num2[s2.charAt(i-n1)-'a']--;
            if(Arrays.equals(num1,num2)){
                return true;
            }
        }
        return  false;
    }
}


相关文章
|
12月前
|
机器学习/深度学习 分布式计算 供应链
阿里云先知安全沙龙(上海站) ——大模型基础设施安全攻防
大模型基础设施的安全攻防体系涵盖恶意输入防御和基础设施安全,包括框架、三方库、插件、平台、模型和系统安全。关键漏洞如CVE-2023-6019(Ray框架命令注入)、CVE-2024-5480(PyTorch分布式RPC)及llama.cpp中的多个漏洞,强调了代码安全性的重要性。模型文件安全方面,需防范pickle反序列化等风险,建议使用Safetensors格式。相关实践包括构建供应链漏洞库、智能化漏洞分析和深度检测,确保全方位防护。
|
SQL 关系型数据库 MySQL
sql如何建立数据库
在SQL中,建立数据库通常涉及使用“CREATE DATABASE”语句。以下是一个基本的步骤指南,以及一个示例SQL命令,用于创建一个新的数据库。 ### 步骤指南 1. **确定数据库
|
XML JavaScript 前端开发
掌握 JavaScript:从初学者到高级开发者的完整指南(三)
掌握 JavaScript:从初学者到高级开发者的完整指南(三)
|
JavaScript 前端开发 关系型数据库
|
Cloud Native Shell 网络安全
【云原生Docker系列第二篇】Docker容器管理(我在人间贩卖黄昏,只为带着星光照耀你)(二)
【云原生Docker系列第二篇】Docker容器管理(我在人间贩卖黄昏,只为带着星光照耀你)(二)
617 0
【云原生Docker系列第二篇】Docker容器管理(我在人间贩卖黄昏,只为带着星光照耀你)(二)
Could not find com.android.support:appcompat-v7:25.3.1.
Could not find com.android.support:appcompat-v7:25.3.1.
136 0
|
开发工具 Android开发 开发者
【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )
【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )
385 0
【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )
|
SQL
问题定位:怎样找到抓取进程 传播进程 应用进程 视图表
<p><br></p> <p><br><br></p> <div style="font-family:'lucida Grande',Verdana,'Microsoft YaHei'; font-size:14px; line-height:23px"> 一、 应用进程</div> <div style="font-family:'lucida Grande',Verdana,
1410 0
|
自然语言处理 Python 容器
Python进阶01 词典
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   基础教程介绍了基本概念,特别是对象和类。 进阶教程对基础教程的进一步拓展,说明Python的细节。
791 0