タイトル説明
それぞれの文字の場合、文字列シフトによる文字列S、Sを考えると、我々は新しい文字列を取得することができます。得られたすべての可能な文字列のセットを返します。
思考
コード
class Solution:
def letterCasePermutation(self,S:str) -> List[str]:
res = []
def backtrack(S,p):
res.append(S)
for k in range(p,len(S)):
if 'a' <= S[k] <= 'z':
backtrack(S[:k]+S[k].upper()+S[k+1:],k+1)
elif 'A' <= S[k] <= 'Z':
backtrack(S[:k]+S[k].lower()+S[k+1:],k+1)
#return
backtrack(S,0)
return res