Algorithm 使用集合生成子字符串
我的朋友在面试中被问了几个问题 如何找到给定字符串的所有可能的子字符串? 我知道这可以用很多技术来解决,但后来他得到了一个提示,那就是使用集合Algorithm 使用集合生成子字符串,algorithm,data-structures,set,Algorithm,Data Structures,Set,我的朋友在面试中被问了几个问题 如何找到给定字符串的所有可能的子字符串? 我知道这可以用很多技术来解决,但后来他得到了一个提示,那就是使用集合 我不知道如何使用集合来完成它。有人能解释一下吗?根据定义,集合只包含元素的一个副本。使用集合解决此问题将消除在输出集中包含重复子字符串的可能性 假设您正在迭代此字符串: aabbaa 查找长度为2的子字符串,并将其添加到集合中 你会发现: aa ab bb ba aa 第一个和最后一个是重复的,所以一个会被丢弃。这应该是时间还是空间效率?集合确保了唯
我不知道如何使用集合来完成它。有人能解释一下吗?根据定义,集合只包含元素的一个副本。使用集合解决此问题将消除在输出集中包含重复子字符串的可能性 假设您正在迭代此字符串:
aabbaa
查找长度为2的子字符串,并将其添加到集合中
你会发现:
aa
ab
bb
ba
aa
第一个和最后一个是重复的,所以一个会被丢弃。这应该是时间还是空间效率?集合确保了唯一性。没有更多关于时间或空间的细节被询问。将输出字符串放入hashmap中也可以实现类似的效果,对吗?@AmolPatil hashmap(至少在Java中,我不确定其他语言)使用键值对存储数据。我认为这不是解决这个问题的明智的数据结构选择。您可以使用每个子字符串作为键和值,但这是一种奇怪的方式。HashSet(Java)的实现实际上是创建一个HashMap,其中集合中的所有键都映射到同一个虚拟对象,因此,是的,您可以直接使用HashMap(但这会更麻烦)。