我正在尝试在hackerrank.com 上编写这个问题:
https://www.hackerrank.com/challenges/find-strings
我的代码在小情况下运行良好,但在大情况下我的字典很快就会耗尽内存。我能做些什么来解决这个问题?我不想使用列表,因为那样检查条目是否已经存在需要很长时间......这是我的代码:
n = int(raw_input())
words = []
for x in range(n):
words.append(raw_input())
test = int(raw_input())
queries = []
for x in range(test):
queries.append(raw_input())
dict_of_subwords = {}
for x in words:
len_of_x = len(x)
for i in range(len_of_x):
for j in range(i, len_of_x):
dict_of_subwords[x[i:j+1]] = 1
list_of_subwords = dict_of_subwords.keys()
list_of_subwords.sort()
for x in queries:
try:
print list_of_subwords[int(x)-1]
except:
print "INVALID"