找规律:
11
21
1211
111221
题目有点脑筋急转弯的意思,大家应该都接触到过
简陋的答案:
def ss(str1):
ans = []
tem = []
for x in str1:
if x == str1[0]:
tem.append(x)
else:
str2 = str1[len(tem):]
ans2 = ss(str2)
for a in ans2:
ans.append(a)
break
ans.append(tem)
return ans
def getFinalString(ans):
txt = ""
for x in ans[::-1]:
tem = str(len(x)) + x[0]
txt += tem
return txt
def do(txt):
ans = ss(txt)
ans_txt = getFinalString(ans)
return ans_txt
s = "1"
for i in range(10):
tem = do(s)
print tem
s = tem
print "over"
最终打印了前十个数字:
11
21
1211
111221
312211
13112221
1113213211
31131211131221
13211311123113112211
11131221133112132113212221
ss:分解字符串,相同的连续字符放到一个list,并存到list中
getFinalString:合并字符串
do:入口
小趣味题,代码简陋,不要喷。。