567. 字符串的排列
来自 <https://leetcode.cn/problems/permutation-in-string/?envType=study-plan&id=suan-fa-ru-men&plan=algorithms&plan_progress=sc0sqw2>
class Solution {
public:
// 滑动窗口思想,往右移动时,右边加一,左边减一
bool checkInclusion(string s1, string s2) {
int n=s1.size();
int m=s2.size();
if(n>m){
return false;
}
vector<int> nums1(26,0);
vector<int> nums2(26,0); // 初始化一致
for(int i=0;i<n;i++){
nums1[s1[i]-'a']++;
nums2[s2[i]-'a']++;
}
if(nums1==nums2){
return true;
}
// nums1!=nums2
// m>n
// 设置一个滑动窗口大小为s1字符串大小,在nums2
for(int i=n;i<m;i++){
nums2[s2[i-n]-'a']--; // 左边界往右移动一格,减一
nums2[s2[i]-'a']++; // 右边界往右移动一格,加一
if(nums2==nums1){
return true;
}
}
return false;
}
};
标签:26,排列,int,s1,567,字符串,size
From: https://www.cnblogs.com/mengfengguang/p/16790176.html