找出一个字符串第一个重复值/第一个不重复值/时间复杂度

oofjkdkksk//第一个重复值:o //第一个不重复值:f 

正常思维是将第一个字符和后面字符做比较,若重复,返回第一个字符值///若不重复,返回第一个字符值

这样时间复杂度一般是n的平方。

##返回第一个重复值
def oo(self, str):
    if not str or len(str) == 1:
        return str
    for i in range(len(str)):
        for j in range(i,len(str)):
            if str[i] == str[j]:
                return i
##返回第一个非重复值
def oo(self, str):
    dir = {}
    for i in str:
        dir[i] = 1 if i not in dir else dir[i] +1 
    for i in range(len(str)):
        if dir[i] == 1
        return dir[i]

杨辉三角

 1  11 121 1331 14641  

def trigger():
    n = 1
    while True:
        yield n
        #n = [x+y for x,y in zip([0] + n, n + [0])]
        n = [1]+[n[i]+ n[i-1] for i in range(1,len(n))]+[1]   ### range(1,1) = []
        

猜你喜欢

转载自blog.csdn.net/yushu4772/article/details/82831576