小菜鸟花了2个小时才绕明白,思想是好的,但是逻辑不清,导致编程老是走不通,下次一定画流程图!!!
class Solution:
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
finallycontsay = "1"
countsay =""
j = 0
nums = finallycontsay[0]
count = 0
for i in range(0, n-1):
count = 0
for j in range(j, len(finallycontsay)):
if nums == finallycontsay[j]:
count += 1
if j==len(finallycontsay)-1:
countsay = countsay + str(count) + str(finallycontsay[j])
else:
countsay = countsay + str(count) + str(finallycontsay[j-1])
nums =finallycontsay[j]
count = 1
if j==len(finallycontsay)-1:
countsay = countsay + str(count) + str(finallycontsay[j])
finallycontsay = countsay
countsay = ""
nums = finallycontsay[0]
j=0
return finallycontsay
我的代码还是有重复的地方,下面附上大佬的代码。
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
ans = "1"
n -= 1
while n > 0:
res = ""
pre = ans[0]
count = 1
for i in range(1, len(ans)):
if pre == ans[i]:
count += 1
else:
res += str(count) + pre
pre = ans[i]
count = 1
res += str(count) + pre
ans = res
n -= 1
return ans
我的想法还是对的,继续加油