• 2016去哪儿编程题:文本嗅探


    文本嗅探

    题目描述

    现在有一个字符串列表,和一个关键词列表,请设计一个高效算法,检测出含关键字列表中关键字(一个或多个)的字符串。

    给定字符串数组A及它的大小n以及关键词数组key及它的大小m,请返回一个排好序的含关键词的字符串序号的列表。保证所有字符串长度小于等于100,关键词个数小于等于100,字符串个数小于等于200。保证所有字符串全部由小写英文字符组成。若不存在含关键字的字符串,请返回一个只含-1的数组。

    测试样例:
    ["nowcoder","hello","now"],3,["coder",now],2
    返回:[0,2]
    解题

    直接暴力
    找到子串,可以自己写,可以用 contains,indexOf



    import java.util.*;
    
    public class KeywordDetect {
        public int[] containKeyword(String[] A, int n, String[] keys, int m) {
            // write code here
            ArrayList<Integer> list = new ArrayList<Integer>();
            for(int i = 0;i<n ;i++){
                String str = A[i];
                boolean flag = isContains(str,keys,m);
                if(flag){
                    list.add(i);
                }
            }
            
            int[] result = new int[list.size()];
            for (int i = 0; i < list.size(); i++) {
                result[i] = list.get(i);
            }
            
            if(list.size() == 0)
                return new int[]{-1};
           return result;
        }
        public boolean isContains(String str,String[] keys,int m){
            int id = -1;
            for(int i = 0;i< m;i++){
                id = str.indexOf(keys[i]);
                if(id != -1)
                    return true;
            }
            return false;
        }
    }
  • 相关阅读:
    浅谈生成全排列的4种方法
    UVA
    UVA
    UVA
    UVA
    MySQL索引篇
    MySQL事务篇
    MySQL架构篇
    Redis性能调优
    Redis分布式锁
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5384071.html
Copyright © 2020-2023  润新知