leetcode——38. 报数

class Solution:
    def countAndSay(self, n: int) -> str:
        r={}
        r[1]='1'
        r[2]='11'
        r[3]='21'
        r[4]='1211'
        r[5]='111221'
        if n in r:
            return r[n]
        else:
            i=6
            while i<=n:
                j=0
                k=1
                c=1
                s=''
                while j<len(r[i-1])-1:
                    if r[i-1][j]==r[i-1][k]:
                        c+=1
                        j,k=j+1,k+1
                    else:
                        s+=str(c)+r[i-1][j]
                        j,k=j+1,k+1
                        c=1
                print(j,k)
                if j ==len(r[i-1])-1:
                    s+=str(c)+r[i-1][j]
                r[i]=s
                i+=1
            return r[n]
执行用时 :48 ms, 在所有 python3 提交中击败了82.33%的用户
内存消耗 :14 MB, 在所有 python3 提交中击败了5.00%的用户
 
                                                  ——2019.10.24

猜你喜欢

转载自www.cnblogs.com/taoyuxin/p/11734336.html