现在有一个字符串列表,和一个关键词列表,请设计一个高效算法,检测出含关键字列表中关键字(一个或多个)的字符串。
给定字符串数组A及它的大小n以及关键词数组key及它的大小m,请返回一个排好序的含关键词的字符串序号的列表。保证所有字符串长度小于等于100,关键词个数小于等于100,字符串个数小于等于200。保证所有字符串全部由小写英文字符组成。若不存在含关键字的字符串,请返回一个只含-1的数组。
现在有一个字符串列表,和一个关键词列表,请设计一个高效算法,检测出含关键字列表中关键字(一个或多个)的字符串。
给定字符串数组A及它的大小n以及关键词数组key及它的大小m,请返回一个排好序的含关键词的字符串序号的列表。保证所有字符串长度小于等于100,关键词个数小于等于100,字符串个数小于等于200。保证所有字符串全部由小写英文字符组成。若不存在含关键字的字符串,请返回一个只含-1的数组。
["nowcoder","hello","now"],3,["coder",now],2
[0,2]
# -*- coding:utf-8 -*- class KeywordDetect: def containKeyword(self, A, n, keys, m): tag=[0 for i in range(n)]#tag保存字符串是否含关键字的标签 ans=[] for i in range(m):#对每一个关键字,在每一个字符串中寻找是否存在 for j in range(n): if A[j].find(keys[i])!=-1:#存在则标签为1 tag[j]=1 for i in range(n):#将标签为1的下标保存在ans数组中 if tag[i]==1: ans.append(i) if ans==[]:#数组为空则不存在含关键字的字符串,返回-1 return [-1] else: return ans