python-3.x - 从python中的字符串获取所有子字符串?
问题描述
在不使用任何模块且不重复的情况下查找字符串中所有子字符串的最快方法是什么
def lols(s):
if not s:
return 0
lst = []
for i in range (len(s)):
for j in range(i , len(s)+1):
if not s[i:j] :
pass
elif len(s[i:j]) == len(set(s[i:j])):
lst.append(s[i:j])
res = (max(lst , key=len))
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
s = s*100
lols(s)
此函数适用于小于 1000 的字符串,但在使用示例字符串并且超过大字符串的时间限制时它会冻结
解决方案
也许你的函数性能会像 n 2 或 n!一样变慢。(O(n 2) or O(n!)) 或者内存紧张。关于可以使用 print 函数在 stdout 中打印的字符串的最大大小,因为您必须将文本作为 python 对象传递给 print 函数,并且由于变量的最大大小取决于您的平台,它可能是 2* *31 - 1 在 32 位平台上,2* *63 - 1 在 64 位平台上。
有关更多信息,请访问sys.maxsize
推荐阅读
- processor - 计算执行时间
- python - 执行 jupyter notebook 时出错:ImportError: cannot import name '_RuleList'
- c# - 当返回行时,如何修复 reader.Read() 部分中的输入格式不正确?
- reactjs - 如何将 Redux 连接到 React 功能组件
- c - 我可以将作为命令行参数传递的 .txt 文件保存到 C 中的 char 数组吗?
- python - 是否可以将 dask 数据框与 teradata python 模块一起使用?
- python-3.x - 如何在python 3.7中的图像中对多尺度水平的中心环绕差异执行Earth Mover的距离而不是DoG
- php - 如何使用 cUrl 将数据作为表单数据提交
- microservices - 分布式系统 - 如何保证至少一次发布消息?
- python - 为什么 int list 没有在 python 3.7 及更高版本中转换但适用于 python 2.7?