【发布时间】:2012-07-02 06:00:30
【问题描述】:
Traceback (most recent call last):
File "/run-1341144766-1067082874/solution.py", line 27, in
main()
File "/run-1341144766-1067082874/solution.py", line 11, in main
if len(s[i:j+1]) > 0:
MemoryError
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python2.7/dist-packages/apport/__init__.py", line 1, in
from apport.report import Report
MemoryError
Original exception was:
Traceback (most recent call last):
File "/run-1341144766-1067082874/solution.py", line 27, in
main()
File "/run-1341144766-1067082874/solution.py", line 11, in main
if len(s[i:j+1]) > 0:
MemoryError
当我尝试运行以下程序时出现上述错误。有人可以解释什么是内存错误,以及如何克服这个问题? . 程序将字符串作为输入并查找所有可能的子字符串并从中创建一个集合(按字典顺序),它应该在用户询问的相应索引处打印值,否则它应该打印'无效'
def main():
no_str = int(raw_input())
sub_strings= []
for k in xrange(0,no_str):
s = raw_input()
a=len(s)
for i in xrange(0, a):
for j in xrange(0, a):
if j >= i:
if len(s[i:j+1]) > 0:
sub_strings.append(s[i:j+1])
sub_strings = list(set(sub_strings))
sub_strings.sort()
queries= int(raw_input())
resul = []
for i in xrange(0,queries):
resul.append(int(raw_input()))
for p in resul:
try:
print sub_strings[p-1]
except IndexError:
print 'INVALID'
if __name__ == "__main__":
main()
【问题讨论】:
-
我认为您可能内存不足,您可以发布您的输入数据吗?
-
@GustavLarsson 我没有输入数据,这是 interviewstreet 的问题。
-
@kratos 您对字符串
abcd的预期输出是什么? -
如果你有一个
MemoryError并且你认为你有足够的可用内存,请检查以确保你使用的是 64 位版本的 python!请参阅下面的完整说明stackoverflow.com/questions/11283220/memory-error-in-python/…