题目:
The count-and-say sequence is the sequence of integers with the first five terms as following:
1. 1
2. 11
3. 21
4. 1211
5. 111221
第二条是对第一条的统计,‘1’包含1个1,则返回的是‘11’,第三条统计第二条,‘11’包含两个1,则返回‘21’,依次类推,第四条统计第三条,包含1个1和1个2,故返回’1211‘。
解题思路:
直接用迭代的方式,按照提议对上一条字符串进行统计即可,比较简单。需要注意的是字符串的边界条件等。
代码(python):
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
if n==1:
return '1'
if n==2:
return '11'
s = '11'
for i in range(n-2):
count = 1
temp_s = ''
for j in range(len(s)-1):
if s[j]==s[j+1]:
count = count+1
else:
temp_s = temp_s+str(count)+s[j]
count = 1
temp_s = temp_s+str(count)+s[j+1]
s = temp_s
print s
return s