class Solution:
def subsets(self, S):
if not S:
return [[]]
return map(lambda x: sorted([S[0]] + x), self.subsets(S[1:])) + self.subsets(S[1:])
#return map(lambda x: sorted(x.append(S[0])), self.subsets(S[1:])) + self.subsets(S[1:])
print Solution().subsets([1, 2])
print Solution().subsets([3, 2, 1])
注释里的写法报 TypeError: 'NoneType' object is not iterable,不让用append方法,但x 明明就是一个list 啊
1
leavic 2015-07-25 14:04:09 +08:00
骚年,你在哪里定义x是个list了,至少你这几行里我看不出来,实在不行你加个list()函数强制转成list不行吗
|
2
laoyuan OP 我错了,append 仅仅是修改对象,没有返回值。。。
|
3
laoyuan OP 顺便发一下reduce 版本:
return reduce(lambda x, y: x + map(lambda z: sorted(z + [y]), x), [[[]]] + S) |