外贸型网站推广与监测,促销策划方案,织梦怎么上传wordpress,python语言好学吗一、题目 二、思路解析 1.思路#xff1a; 滑动窗口#xff01;#xff01;#xff01; 2.常用方法#xff1a; 无 3.核心逻辑#xff1a; 1.特殊情况#xff1a;s或t是否为空字符串
if(snull||tnull)return ; 2.声明一个字符数组——用于记录对应字符出现…一、题目 二、思路解析 1.思路 滑动窗口 2.常用方法 无 3.核心逻辑 1.特殊情况s或t是否为空字符串
if(snull||tnull)return ; 2.声明一个字符数组——用于记录对应字符出现的次数声明一个遍历cnt——记录t字符串中字符的种类数量
char[]chnew char[128];
int cnt0;
//遍历字符串t
for(int i0;it.length();i){if(ch[t.charAt(i)]0)cnt;ch[t.charAt(i)];
} 3. 遍历字符串s窗口进行滑动 a.窗口扩容对当前字符所在的数组中的所记录的次数减一判断当前字符所在的数组的记录次数是否为0如果为0cnt--表示为已经覆盖了t字符串中对应的字符的一种 b.当cnt0时表示已经包含了t中的所有字符然后更新最小的覆盖子串长度 c.缩容将起始位置向右移动
三、代码实现
class Solution {public String minWindow(String s, String t) {if(snull||tnull)return ;char[]chnew char[128];int cnt0;for(int i0;it.length();i){if(ch[t.charAt(i)]0)cnt;ch[t.charAt(i)];}int resLeft-1;int resRights.length();int left0;for(int right0;rights.length();right){ch[s.charAt(right)]--;if(ch[s.charAt(right)]0)cnt--;while(cnt0){if(resRight-resLeftright-left){resLeftleft;resRightright;}if(ch[s.charAt(left)]0)cnt;ch[s.charAt(left)];left;}}return resLeft0?:s.substring(resLeft,resRight1);}
}