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`

is read off as `"one 1"`

or `11`

.`11`

is read off as `"two 1s"`

or `21`

.`21`

is read off as `"one 2`

, then `one 1"`

or `1211`

.

Given an integer *n* where 1 ≤ *n* ≤ 30, generate the *n*th term of the count-and-say sequence.

Note: Each term of the sequence of integers will be represented as a string.

<Idea> The question is more annoying, only one step reading. Cur_val is the number to be read (one bit), count is the number of this number, part is the intermediate variable, and the count and cur_val (several) of this loop are saved.

```
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
num = '1'
while n>1:
cur_val = num[0]
count = 0
part = ''
for j in num:
if cur_val == j:
count += 1
else:
part += str(count)+cur_val
cur_val = j
count = 1
part += str(count) + cur_val
num = part
n -= 1
return num
```