题目描述:
思路:一个字母一个字母的转换;
比如S=“a1b2”
第一次res=[“a1b2”]
第二次res=[“a1b2”,“A1b2”]
第三次res=[“a1b2”,“A1b2”,“a1B2”,“A1B2”]
代码如下:
class Solution {
public:
vector<string> letterCasePermutation(string S) {
vector<string>res;
res.push_back(S);
if(S.size()==0) return res;
for(int i=0;i<S.size();i++){
if(S[i]>='a'&&S[i]<='z'){
int temp=res.size();
for(int j=0;j<temp;j++){
string ch=res[j];
ch[i]-=32;
res.push_back(ch);}
}
if(S[i]>='A'&&S[i]<='Z'){
int temp=res.size();
for(int j=0;j<temp;j++){
string str=res[j];
str[i]+=32;
res.push_back(str);}
}
}
return res;
}
};