我得到了正确的输出,但超过了时间限制。
问题:包含(不一定是不同的)N个单词和Q个查询的列表Li。每个查询都由一个字符串x组成。对于每个查询,找出列表Li中有多少个字符串的前缀是字符串x。\
class Solution{
static List prefixCount(int N, int Q, String li[], String query[])
{
List list = new ArrayList<>();
int l,c;
for(int i=0; i=query[i].length()){
if(li[j].substring(0,query[i].length()).equals(query[i])){
c++;
}
}
}
list.add(c);
}
return list;
}
}如何优化上面的代码?
发布于 2021-02-27 14:00:40
使用给定的字符串创建trie,在每个节点上维护创建Trie时该节点被遍历的次数。
现在,对于您遍历数组的每个前缀字符串,如果您成功遍历到Trie中的前缀字符串长度,则该前缀字符串的答案在节点处计数,否则答案为0。
https://stackoverflow.com/questions/66395902
复制相似问题