784. Letter Case Permutation
題目網址:https://leetcode.cn/problems/letter-case-permutation/
題意:給一 string
s
, 將s
中的每個字母轉變大小寫, 可得到新的 string。求所有可能的 string, 可以按順序任意排列。
Solution:
想法:利用 DFS + Backtracking
- 若
s[i]
為數字, 則s[i]
不變繼續往後走- 若
s[i]
為字母, 則有兩種情況:
s[i]
不變繼續往後走
s[i]
轉變大小寫後, 繼續往後走
class Solution { |
- time:$O(n \cdot 2^n)$
- 最多 $2^n$ 種狀態(
n
個都字母) - 建每一種狀態的需 $O(n)$
- 最多 $2^n$ 種狀態(
- space:$O(n \cdot 2^n)$ ➔ $O(n) + O(n \cdot 2^n)$
- $O(n)$ :
dfs()
遞迴最大深度 - $O(n \cdot 2^n)$ : 最多 $2^n$ 種狀態(
n
個都字母), 每種狀態的 string 長度都為n
- $O(n)$ :
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論