gpt4 book ai didi

java - 字符串数组(树)

转载 作者:行者123 更新时间:2023-11-29 04:24:16 30 4
gpt4 key购买 nike

假设我们有 5 个字符串数组:

String[] array1 = {"hello", "i", "cat"};
String[] array2 = {"hello", "i", "am"};
String[] array3 = {"hello", "James"};'
String[] array4 = {"hello", "i", "bob"};
String[] array5 = {"hello", "mike", "wasup"};

我如何创建一棵树,其中“hello”始终是根,第二个元素是根的子元素,其他元素成为子根的子元素。 (每个节点可以有 0-n 个子节点)

一个例子:

           hello
/ \ \
i james mike
/ \ \ /
cat am bob wasup

上图是我想要的一种树。请不要编写任何代码。我想了解这个概念。解释您作为程序员的方法。

最佳答案

它是一棵树,其中单词可能紧跟在给定单词之后。

因此,应该有一个人工词根,因为可能会有句子使用除“你好”之外的其他词。

将所有这些句子 (array1, ...) 本身放入一个数组(或集合或数据库)中。这样一个人就可以从他们身上走过;可以认为它们是可迭代的。

有一个部分树,最初是空的,只包含 ROOT。

然后循环直到所有单词都在树中,寻找新单词添加到所有现有单词中。对于每个句子,将第一个词放在词根下(ROOT 已经存在)。对于每隔一个单词,如果前一个单词在树中,则将该单词放在前一个树下。


如您所见,在稳定的固定数据上采用天真的方法(遵循上述方法)需要跳过很多。人们当然可以将单词映射到包含其所有后继者的树节点,这样算法就变得非常简单。

关于java - 字符串数组(树),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212969/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com