784 LeetCode 字母大小写全排列

题目描述:
在这里插入图片描述
思路:一个字母一个字母的转换;
比如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;
    }
};
发布了123 篇原创文章 · 获赞 0 · 访问量 951

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104372808