public static String minWindow2(String s, String t){
if (t.length()>s.length()){
return "";
}
HashMap<Character, Integer> hashMap = new HashMap<>();
for (Character i:t.toCharArray()){
if (hashMap.containsKey(i)){
hashMap.put(i,hashMap.get(i)-1);
}else{
hashMap.put(i,-1);
}
}
//滑动窗口
int start=0;
int end=0;
int max=Integer.MAX_VALUE;
String res = "";
while (end<s.length()){
//不为null
if (hashMap.get(s.charAt(end))!=null){
hashMap.put(s.charAt(end),hashMap.get(s.charAt(end))+1);
//判断符合不
if (test18(hashMap)){
//将start往后移动
while (test18(hashMap)&&start<=end){
//更改max
if (end-start+1<max){
max = end-start+1;
res = s.substring(start,end+1);
}
if (hashMap.get(s.charAt(start))!=null){
//减去1
hashMap.put(s.charAt(start),hashMap.get(s.charAt(start))-1);
}
start++;
}
end++;
}else{
end++;
}
}else{
end++;
}
}
return res;
}
public static boolean test18(HashMap<Character, Integer> hashMap){
for (Integer i:hashMap.values()){
if (i<0){
return false;
}
}
return true;
}
最小覆盖子串
新生农民2025-04-13 13:58
相关推荐
智者知已应修善业15 分钟前
【51单片机8位数码管动态显示日期小数点风格】2023-11-13智者知已应修善业15 分钟前
【51单片机有三个LED 分别第一个灯闪三下 再到第二个灯又闪三下 再到第三个灯又闪三下 就这样循环程序】2023-11-16JAVA面经实录91728 分钟前
MyBatis学习体系java1234_小锋31 分钟前
在 Spring AI 中如何实现函数调用(Function Calling)?请说明其基本原理和应用场景。小马爱打代码1 小时前
Spring源码 第九篇:Spring 5 源码深度拆解 - Spring 事件驱动模型ForgeAI码匠2 小时前
ForgeAdmin|Spring Boot 3 后台框架的自动配置设计:少写配置,多做组合tongluowan0072 小时前
Redisson的参数及工作原理小娄~~2 小时前
C语言卷子错题集小L~~~2 小时前
基于贪心策略的混合遗传算法求解01背包问题