leetcode784. 字母大小写全排列

 

 好久没写了,随便写写吧。

长度不超过12,就可以直接暴力了。


class Solution {
public:
    vector<string> ans;
    vector<int> ind;
    string p;
    int dfs(int a){
        if (a==ind.size()){
            ans.push_back(p);
            return 0;
        }
        string temp=p;
        dfs(a+1);
        p[ind[a]]+='A'-'a';
        
        dfs(a+1);
        p=temp;
        return 1;
    }
    vector<string> letterCasePermutation(string s) {
        int i;
        

        for(i=0;i<s.length();i++){
            if(s[i]>='a'&&s[i]<='z'){
                ind.push_back(i);
            }
            if(s[i]>='A'&&s[i]<='Z'){
                ind.push_back(i);
                s[i]+='a'-'A';
            }
        }
        p=s;
        dfs(0);
        return ans;
    }
};

  

posted @ 2022-01-09 14:06  vdk  阅读(39)  评论(0)    收藏  举报