/*
示例:
输入: S = "a1b2"
输出: ["a1b2", "a1B2", "A1b2", "A1B2"]
输入: S = "3z4"
输出: ["3z4", "3Z4"]
输入: S = "12345"
输出: ["12345"]
*/classSolution{public:
vector<string>letterCasePermutation(string S){if(S.empty())return{""};
vector<string> res;get(res, S,0);return res;}voidget(vector<string>& res, string& s,int p){if(p == s.size()){
res.push_back(s);return;}char c = s[p];get(res, s, p +1);if(c >='a'&& c <='z'){
s[p]=toupper(c);get(res, s, p +1);}if(c >='A'&& c <='Z'){
s[p]=tolower(c);get(res, s, p +1);}}};
数组全排列
voidperm(vector<int>& A,int p,int q){if(p == q){for(int v : A){
cout << v <<"\t";}
cout <<"\n";}else{for(int i = p; i <= q; i++){
std::swap(A[p], A[i]);perm(A, p +1, q);
std::swap(A[p], A[i]);}}}
0 1 背包 解空间
int x =0;voiddfs(vector<int>& v,int index){if(index == v.size()){for(int i : v){
cout << i <<"\t";}
cout <<"#"<<++x <<"\n";return;}
v[index]=0;dfs(v, index +1);
v[index]=1;dfs(v, index +1);}
using namespace std;void perm(vector<int>& A, int p, int q){ if (p == q) { for (int v : A) { cout << v << "\t"; } cout << "\n"; } else { for (int i = p...