小趣味题

找规律:

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:入口

小趣味题,代码简陋,不要喷。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值