LeetCode 字符串的排列
2024-10-20 06:37:46
给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。
换句话说,第一个字符串的排列之一是第二个字符串的子串。
示例1:
输入: s1 = "ab" s2 = "eidbaooo"
输出: True
解释: s2 包含 s1 的排列之一 ("ba").
示例2:
输入: s1= "ab" s2 = "eidboaoo"
输出: False
解法:开始想跑dfs 跑全排列,然后用KMP 去匹配,但是后来想了一下,不用那么复杂,因为全是小写字母,所以只需要s2 和s1 这段字符串的字符数量一样就可以了,
因为s1 的子串可以重新组合,必然能和s2 匹配成功。
class Solution {
public:
bool check(int a[])
{
for(int i=;i<;i++)
{
if(a[i]!=)
return false;
}
return true;
}
bool checkInclusion(string s1, string s2) {
int len1=s1.length();int len2=s2.length();
if(len1>len2 || len1== || len2==)
{
return false;
}
else
{
int a[]={};
for(int i=;i<len1;i++)
{
a[s1[i]-'a']--;
a[s2[i]-'a']++;
}
for(int j=len1;j<len2;j++)
{
if(check(a))
{
return true;
}
a[s2[j-len1]-'a']--;
a[s2[j]-'a']++;
}
return check(a);
}
}
};
最新文章
- Beta--项目冲刺第七天
- Increasing Triplet Subsequence
- sublime快捷键-for mac
- NSCoding归档
- 黄聪:如何阻止iframe里引用的网页自动跳转
- 解析$.grep()源码及透过$.grep()看(两次取反)!!的作用
- windows github 搭建与使用
- sizeof(int *) 和 sizeof(int)型的大小问题
- PHP中字符串类型与数值类型混合计算
- aspnet-webapi-2-contrib
- mybatis逆向工程生成代码
- 数据恢复培训资料:BMP文件详解
- OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据
- 18.22 sprintf函数功能
- Spring Boot入门(12)实现页面访问量统计功能
- java_21 Set接口、HashSet类、LinkedSet类
- 为docker配置HTTP代理服务器
- maven(二):创建一个可用的maven项目,完整过程
- [cnblog新闻]历史性时刻:云硬件支出首次高于传统硬件
- 【AtCoder】ARC083
热门文章
- [Xcode 实际操作]九、实用进阶-(32)项目的打包上传和提交审核以及下架处理
- dubbo-admin安装
- MyBatis逆向工程代码的生成以及使用详解(持续更新)
- excel输入值非法,限定了可以输入的数值怎么办
- [题解](树的计数)luogu_P4430猴子打架_/_luogu_P4981父子
- python 基础(三) 程序基本流程
- bzoj1538 [NWERC2017]High Score
- 一些API
- JavaMailSender怎么发送163和qq邮件
- 分享一套Code Smith 搭建N层架构模板