every blog every motto: You will never know unless you try
0. 前言
冲冲冲
1. 字符串
1.1 题目
1.2 代码
class Solution:
def countAndSay(self, n: int) -> str:
"""迭代"""
strs = '1' # 第一个字符
# 余下的n-1
for i in range(n - 1):
last_str = '' # 上一步的字符
i = 0 # 起始索引
j = len(strs) # 当前字符的长度
count = 1
while i < j - 1: # 当前数和下一个数比较,下一个数为i+1<=len(s)-1 => i<= len(s)-2 => i<len(s)-1
# 当前字符与下一个字符相同
if strs[i] == strs[i + 1]:
count += 1 # 数量+1
i += 1 # 索引+1
else:
# 上一步的字符+当前字符数量+当前字符 -> 组成下一个字符
last_str = last_str + str(count) + strs[i]
count = 1 # 数量归1
i += 1 # 索引+1
# 统计最后一个字符
strs = last_str + str(count) + strs[i]
return strs