码迷,mamicode.com
首页 > 其他好文 > 详细

S表示1,L表示2,计算由S和L组成的序列之和为N的组合

时间:2015-11-12 23:14:18      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

def func(n):
    def calc_str(s):
        s = s.strip() if s is not None else ""
        s = s.upper()
        result = 0
        for c in s:
            result += 1 if c == "S" else 2
        return result
    result = list()
    if n == 0:
        result.append("")
    elif n == 1:
        result.append("S")
    else:
        offset = -1
        while (n + offset) >= 0:
            for s in func(n + offset):
                if calc_str(s + "S") == n:
                    result.append(s + "S")
                if calc_str(s + "L") == n:
                    result.append(s + "L")
            offset -= 1
    return result
    
print(func(6))

好像有什么不对的地方,明天再看看

S表示1,L表示2,计算由S和L组成的序列之和为N的组合

标签:

原文地址:http://www.cnblogs.com/tacyeh/p/4960477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!