python - 减少执行时间
问题描述
以下是我的代码,它返回子字符串的总数,其中 -
- 所有字符都相同,例如:'aaaa'
- 除中间字符外,所有字符都相同,例如:'aadaa'
给定字符串 , s = 'mnonopoo' 我们有以下特殊子字符串: { 'm', 'n', 'o', 'n', 'o', 'p', 'o', 'o', ' oo', 'non', 'ono', 'opo' } 你只需要返回那个特殊子串的总数。在这种情况下,它是 12。
def palin(x):
if x==x[::-1]:
if len(set(x))==1 or len(set(x))==2:
return True
else:
return False
else:
return False
def special_string(string):
result=[]
for i in range(len(string)):
for j in range(i+1, len(string)+1):
r= string[i:j]
if palin(r):
result.append(r)
return len(result)
我的代码适用于较小的输入,但会因输入较大而终止。请帮助我改进我的代码。
解决方案
推荐阅读
- c# - 将复合表映射到 EF Core 中的默认值表
- bash - 在 bash 中将变量作为命令的一部分展开
- c++ - 我的 try catch 零除法有问题吗?
- php - 仅当在 Woocommerce 中应用优惠券时才允许购买特定产品
- c++ - Read access violation in matrix
- python-3.x - Python 函数的 return 语句如何像 print(argument, end='') 一样将字符串保持在同一行?
- sql - 如何最小化事务日志 sqlserver 数据库。?
- javascript - JavaScript setTimeout() 函数不适用于“onsubmit”表单属性
- python - 通过 2 个 ForeignKeys 在 django 中加入模型
- c - 分叉的孩子“打印”两次重定向标准输出