字母大小写全排列

题目链接:https://leetcode-cn.com/problems/letter-case-permutation
题目描述:
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。

示例:
输入:S = "a1b2"
输出:["a1b2", "a1B2", "A1b2", "A1B2"]

输入:S = "3z4"
输出:["3z4", "3Z4"]

输入:S = "12345"
输出:["12345"]

提示:
S 的长度不超过12。
S 仅由数字和字母组成。

题解:


class Solution {
public:
    vector<string> result;
    string path;
    vector<string> letterCasePermutation(string s) {
        backTracking(s, 0);
        return result;

    }
    void backTracking(string s, int index)
    {
        if(index == s.size())
        {
            result.push_back(path);
            return;
        }
       
        if(isalpha(s[index]))       //判断是否是字母
        {
            char temp = s[index];
            if(islower(temp))       //判断是否是小写字母
            {
                temp = toupper(temp);
            }else
            {
                temp = tolower(temp);
            }
            path.push_back(temp);
            backTracking(s, index + 1);
            path.pop_back();
        }
        path.push_back(s[index]);
        backTracking(s, index + 1);
        path.pop_back();
         
    }
};

原文地址:https://www.cnblogs.com/ZigHello/p/15479256.html