■問題
幾つかのサイトのURLとそのサイトに含まれるキーワードと,危険なサイトであることを表すキーワード群が与えられる.どのサイトが危険であるかを判定せよ.
■解法
危険キーワードをリストに取っておく.
n個のサイトについて以下を調べる.
あるサイトが危険キーワードを含む場合,そのサイトを「危険である」とし,そのサイトが含むキーワードを危険キーワードリストに追加.
「危険である」サイトが見つからなくなるまでループ.
import java.lang.*;
import java.util.*;
public class InternetSecurity{
public String[] determineWebsite(String[] address, String[] keyword, String[] d, int threshold){
int n=address.length;
LinkedList<String> dangerous=new LinkedList<String>();
boolean[] flag=new boolean[n];
for(String s:d){
dangerous.add(s);
}
for(;;){
boolean f=false;
for(int i=0;i<n;i++){
if(flag[i]){
continue;
}
int c=0;
for(String s:keyword[i].split(" ")){
if(dangerous.contains(s)){
c++;
}
}
if(c>=threshold){
for(String s:keyword[i].split(" ")){
dangerous.add(s);
}
flag[i]=f=true;
}
}
if(!f){
break;
}
}
LinkedList<String> list=new LinkedList<String>();
for(int i=0;i<n;i++){
if(flag[i]){
list.addLast(address[i]);
}
}
return list.toArray(new String[0]);
}
}
0 件のコメント:
コメントを投稿