leetcode--38. 數數並說
阿新 • • 發佈:2018-11-11
題目:38. 數數並說
連結:https://leetcode-cn.com/problems/count-and-say/description/
一個序列,第一項是1,我們讀作1個1,於是下一項就是11。第二項不是11嘛,讀作2個1,於是第三項是21,讀作1個2,1個1,於是第四項是1211,這個又讀作1個1,1個2,2個1,於是下一項就是111221...略略略...
python:
def getNext(s): s = list(str(s)) temp, cnt, res = -1, 1, "" for num in s: if num == str(temp): cnt += 1 else: if temp != -1: res += (str(cnt) + str(temp)) temp, cnt = num, 1 res += (str(cnt) + str(temp)) return res class Solution: ans = ["1"] def countAndSay(self, n): """ :type n: int :rtype: str """ while len(self.ans)<n: self.ans.append(getNext(int(self.ans[-1]))) return self.ans[n-1]