package demo;
public class P79 {
public static void main(String[] args) {
String[] strArr1= {
"i",
"am",
"a",
"hungry",
"hungry",
"tired",
"student"
};
String[] strArr2= {
"a",
"hungry",
"tired"
};
findKeys(strArr1, strArr2);
}
static void findKeys(String[] words,String[] keys) {
int minLen=Integer.MAX_VALUE;
int begin=-1; int end=-1;
int p2=-1;
int[] keyFound=new int[keys.length];
for(int i=0;i<words.length;i++) {
for(int k=0;k<keyFound.length;k++) {
keyFound[k]=0;
}
int index1=indexOf(keys,words[i]);
if(index1==-1) {
continue;
}
else {
keyFound[index1]=1;
}
int j;
if(p2!=-1)
j=p2;
else
j=i+1;
for(;j<words.length;j++) {
int index2=indexOf(keys, words[j]);
if(index2==-1 || keyFound[index2]==1) {
continue;
}
else {
keyFound[index2]=1;
if(sum(keyFound)==keys.length) {
p2=j;
if(j-i+1<minLen) {
begin=i;
end=j;
minLen=end-begin+1;
}
break;
}
}
}
}
for(int k=begin;k<=end;k++) {
System.out.println(words[k]);
}
}
static int sum(int[] keyFound) {
int sum=0;
for(int i:keyFound) {
sum+=i;
}
return sum;
}
private static int indexOf(String[] keys, String word) {
int index=-1;
for(int i=0; i<keys.length; i++) {
if(word.equals(keys[i])) {
index=i;
break;
}
}
return index;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?