1. 程式人生 > >[程式設計題] 文字嗅探

[程式設計題] 文字嗅探

現在有一個字串列表,和一個關鍵詞列表,請設計一個高效演算法,檢測出含關鍵字列表中關鍵字(一個或多個)的字串。
給定字串陣列A及它的大小n以及關鍵詞陣列key及它的大小m,請返回一個排好序的含關鍵詞的字串序號的列表。保證所有字串長度小於等於100,關鍵詞個數小於等於100,字串個數小於等於200。保證所有字串全部由小寫英文字元組成。若不存在含關鍵字的字串,請返回一個只含-1的陣列。
測試樣例:
[“nowcoder”,”hello”,”now”],3,[“coder”,“now”],2
返回:[0,2]

class KeywordDetect{
public:
    vector<int
>
containKeyword(vector<string> vec_str,int n,vector<string> vec_keys,int m){ vector<int> result; for(int i = 0;i<vec_str.size();i++){ string str = vec_str[i]; for(int j = 0;i<vec_keys.size();j++){ if(str.find(vec_keys[j])!= string
::npos){ result.push_back(i); break; } } } if(result.size())!=0){ return result; }else{ return vector<int>(1,-1); } } };