原题
题目大意
下一行算上一行每个数字连续相同的个数
返回相应行的结果
例如:
第一行是 1,1个一
所以第二行是 11
又例如:
第四行是 1211
1个一,1个二,2个一
所以第五行是 111221
解题
递归题
python code
def countAndSay(n: int)->str:
if n == 1: return '1'
count_str = countAndSay(n-1)
resultStr = ''
compare_char = count_str[0]
char_count = 1
for i in range(1, len(count_str)):
if count_str[i] == compare_char:
char_count += 1
else:
resultStr = resultStr + str(char_count) + compare_char
compare_char = count_str[i]
char_count = 1
resultStr = resultStr + str(char_count) + compare_char
return resultStr