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))
考點
- 考查思維能力。當整個問題看起來不能直接解決的時候,能否想到把字符串分成兩部分,從而把大問題分解成小問題來解決,是能否順利解決這個問題的關鍵;
- 對遞歸的理解和編程能力。
本題擴展
暫不做。