1、
回溯就是递归的过程出现了分叉有选择递归
class Solution {
public:
vector<string> letterCasePermutation(string S) {
vector<string> res;
dfs(S,res,0);
return res;
}
void dfs(string S, vector<string>&res, int index)
{
if(index == S.size())
{
res.push_back(S);
return;
}
if(!isalpha(S[index]))
{
dfs(S, res, index+1);
}
else{
S[index] = toupper(S[index]);
dfs(S,res,index+1);
S[index] = tolower(S[index]);
dfs(S,res,index+1);
}
}
};