我有这个程序来形成一组从字符串集合中按字典顺序排列的字符串。输入字符串的数量和字符串本身作为输入,程序旨在按字典顺序形成一个包含来自输入的字符串和子字符串的集合。
strst=set()
nos=input()
for i in range(0,nos):
ele=raw_input()
for j in range(0,len(ele),1):
for k in range(j+1,len(ele)+1):
strst.add(ele[j:k])
strlst=sorted(strst)
print strlst
这个程序将子字符串存储到一个集合中,然后按照字典顺序对其进行排序,最后打印整个列表
例如:
INPUT :
2 //number of input strings
aab
aac
OUTPUT
['a', 'aa', 'aab', 'aac', 'ab', 'ac', 'b', 'c']
该程序适用于小型输入,但是当输入大小(即输入字符串的数量和每个字符串的长度)在 2000 范围内增加时,它会给出异常:
MemoryError thrown on line 9
我想我还没有优化代码。排序可以优化吗?..集合数据结构和列表的大小可以扩展吗?