Python题解
# -*- coding:utf-8 -*-
class Solution:
def Permutation(self, ss):
def helper(s, i, res):
if i == len(s)-1:res.add(s)
else:
for j in range(i, len(s)):
tmp = s[i]
s = s[:i] + s[j] + s[i+1:]
s = s[:j] + tmp + s[j+1:]
helper(s, i+1, res)
tmp = s[i]
s = s[:i] + s[j] + s[i+1:]
s = s[:j] + tmp + s[j+1:]
if ss == "":return []
res = set()
helper(ss, 0, res)
return sorted(list(res))
考点
- 考查思维能力。当整个问题看起来不能直接解决的时候,能否想到把字符串分成两部分,从而把大问题分解成小问题来解决,是能否顺利解决这个问题的关键;
- 对递归的理解和编程能力。
本题扩展
暂不做。