小编use*_*888的帖子

如何在特里找到最长的单词?

我无法理解特里的概念.从"特里"维基百科条目我有这张图片: 在此输入图像描述

如果我正确地看到这一点,则特里结构中的所有叶节点将拼写出整个单词,并且所有父节点都保持通向最终叶节点的字符.所以,如果我有一个名为DigitalTreeNode的类定义

public class DigitalTreeNode {
       public boolean isAWord;
       public String wordToHere; (compiles all the characters in a word together)
       public Map<String, DTN> children;
}
Run Code Online (Sandbox Code Playgroud)

如果我想实现一个返回trie中最长单词的方法,它只需要在每个叶节点找到最长的单词吗?我如何实现如下方法:

public static String longestWord (DigitalTreeNode d);
Run Code Online (Sandbox Code Playgroud)

我猜它涉及设置一个最长的String变量,递归遍历每个节点并检查它是否是一个单词,如果它是一个单词并且它的长度大于最长变量那么longest = newWordLength.但是,我不确定地图中的孩子是如何适应的.如何使用上述方法找到任何特里结构中最长的单词?

java algorithm tree trie

5
推荐指数
1
解决办法
2094
查看次数

在方法调用上抛出异常

如何在方法上抛出和UnsupportedOperationException?所以,如果我有一个Iterable对象,并且我试图禁止该对象的remove方法.

在下面的方法中,我返回一个可迭代的对象,其迭代器的删除我需要通过抛出UnsupportedErrorException来禁用.我可以在方法体内做到这一点或如何做到这一点?

  public Iterable<String> getInNodes (String destinationNodeName)  {
  if (!hasNode(destinationNodeName))
      return emptySetOfString;
  else {
  for(String e : nodeMap.get(destinationNodeName).inNodes)
  {
      emptySetOfString.add(e);
  }
  return emptySetOfString;
  }
}
Run Code Online (Sandbox Code Playgroud)

java error-handling exception throws

3
推荐指数
1
解决办法
152
查看次数

VHDL:零 - 扩展固定信号值

你如何对固定信号值进行零延伸?

我有以下信号:

signal shamt: std_logic_vector(4 downto 0);
Run Code Online (Sandbox Code Playgroud)

在我将它分配给另一个大小为31 downto 0的变量之前,我必须将其扩展为shamt.我有以下代码,但我不确定它是否正确.

muxSOut <= conv_std_logic_vector(unsigned(shamt),32) when (muxSSel = '0') else A;
Run Code Online (Sandbox Code Playgroud)

我对部分conv_std_logic_vector(unsigned(shamt),32)持怀疑态度.

这会扩展shamt,它是5位大小到32位吗?因此,如果shamt是11011,它将只是27 0s然后是11011?如果没有,零延长shamt的正确方法是什么?

vhdl

1
推荐指数
1
解决办法
4576
查看次数

标签 统计

java ×2

algorithm ×1

error-handling ×1

exception ×1

throws ×1

tree ×1

trie ×1

vhdl ×1