小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。
一、剑指 Offer 38. 字符串的排列
class Solution:
def permutation(self, s: str) -> List[str]:
res = []
def dfs(s,path):
if not s:res.append(path)
seen = set()
for i in range(len(s)):
if s[i] in seen:continue
seen.add(s[i])
dfs(s[:i]+s[i+1:],path+s[i])
dfs(s,'')
return res
二、剑指 Offer 46. 把数字翻译成字符串
class Solution:
def translateNum(self, num: int) -> int:
s = str(num)
n = len(s)
if n == 1:return 1
dp = [1,1]
for i in range(1,n):
tmp = int(s[i-1])*10 + int(s[i])
if 10 <= tmp <= 25:
dp.append(dp[i-1]+dp[i])
else:dp.append(dp[i])
return dp[-1]