1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| def count_and_say(n):
if n == 1:
return "1"
def get_next_count_and_say(curr):
ch = curr[0]
cnt = 1
ret = ""
for i in range(1, len(curr)):
if curr[i] != ch:
ret += (str(cnt) + ch)
ch = curr[i]
cnt = 1
else:
cnt += 1
ret += (str(cnt) + ch)
return ret
ret = "1"
for i in range(2, n + 1):
ret = get_next_count_and_say(ret)
return ret
|