■問題
幾つかのサイトの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 件のコメント:
コメントを投稿