【发布时间】:2011-08-25 16:43:57
【问题描述】:
我有一个作业要做,我需要帮助。我应该编写一个程序来查找在字符串中至少重复两次的长度为 k 的第一个子字符串。
例如,在字符串“banana”中有两个长度为 2 的重复子字符串:“an”、“na”。在这种情况下,答案是“an”,因为它出现的时间早于“na”
请注意,简单的 O(n^2) 算法没有用,因为程序的执行时间有时间限制,所以我猜应该是线性时间。
还有一个提示:使用哈希表。
我不想要代码。我只是想让你给我一个线索,因为我不知道如何使用哈希表来做到这一点。我也应该使用特定的数据结构吗?
【问题讨论】:
-
您使用哪种语言编码?
标签: algorithm string data-structures hash substring