【发布时间】:2014-04-17 04:13:32
【问题描述】:
我正在使用一个名为 SingPath 的网站学习 Python。我需要编写快速排序,但出现错误:
“私人测试结果:所有公共测试都通过了,但一些私人测试失败了。您需要概括您的解决方案。”
import random
def qsort(l):
if len(l) <= 1:
return l
partition = l[random.randint(0,len(l)-1)]
xx = [x for x in l if x < partition]
yy = [x for x in l if x > partition]
p = [x for x in l if x == partition]
if type(l) != str:
return qsort(xx) + p + qsort(yy)
return ''.join(qsort(xx)+p+qsort(yy))
任何有关找出为什么此代码不够通用的帮助将不胜感激。
我一直在思考的两个线索是:
- 他们提到在问题描述中检查了运行时
- 他们说当
qsort()被赋予一个字符串而不是一个列表时,它应该能够以列表或字符串的形式返回
【问题讨论】: