Python:如何优化

时间:2015-06-20 18:31:21

标签: python list python-2.7

假设给出了一个len n的字符串,对于其第一个和最后一个字符相同的每个子字符串,我应该将{1}添加到fx并打印最终的fx

前往"ababaca" , f("a")=1 , f("aba")=1 , f("abaca")=1,但f("ab")=0

n = int(raw_input())
string = list(raw_input())
f = 0
for i in range(n):
    for j in range(n,i,-1):
        temp = string[i:j]
        if temp[0]==temp[-1]:
            f+=1
print f

有没有什么方法可以为大字符串优化我的代码,因为我正在为许多测试用例抽出时间。

1 个答案:

答案 0 :(得分:2)

您可以只计算每个字母的出现次数。例如,如果有n' a,则在字符串中将有n *(n-1)/ 2个子串,以' a'开头和结尾。你可以为每个字母做同样的事情,解决方案是线性的。

len(string)添加到获得的最终答案值中。