Java 检查数组中的前缀
我得到了正确的输出,但超出了时间限制。 问题:包含N个单词(不一定不同)和Q查询的列表。每个查询由一个字符串x组成。对于每个查询,查找列表中以字符串x为前缀的字符串数\Java 检查数组中的前缀,java,arrays,string,methods,Java,Arrays,String,Methods,我得到了正确的输出,但超出了时间限制。 问题:包含N个单词(不一定不同)和Q查询的列表。每个查询由一个字符串x组成。对于每个查询,查找列表中以字符串x为前缀的字符串数\ class Solution{ static List<Integer> prefixCount(int N, int Q, String li[], String query[]) { List<Integer> list = new ArrayList<>(
class Solution{
static List<Integer> prefixCount(int N, int Q, String li[], String query[])
{
List<Integer> list = new ArrayList<>();
int l,c;
for(int i=0; i<Q; i++){
c = 0;
for(int j=0; j<N; j++){
if(li[j].length()>=query[i].length()){
if(li[j].substring(0,query[i].length()).equals(query[i])){
c++;
}
}
}
list.add(c);
}
return list;
}
}
类解决方案{
静态列表前缀计数(int N,int Q,字符串li[],字符串查询[])
{
列表=新的ArrayList();
int l,c;
对于(int i=0;i使用给定字符串创建一个Trie,在创建Trie时,在每个节点上保持一个节点被传输的次数计数
现在,对于通过数组遍历的每个前缀字符串,如果成功遍历到Trie中的前缀字符串长度,则该前缀字符串的答案为节点处的计数,否则答案为0。在创建Trie时,需要使用Trie并在每个节点处保持遍历节点次数的计数。此后遍历前缀的Trie,节点处的计数就是您的答案