Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用集合生成子字符串_Algorithm_Data Structures_Set - Fatal编程技术网

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(但这会更麻烦)。