Title
Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create.
Examples:
Input: S = "a1b2"
Output: ["a1b2", "a1B2", "A1b2", "A1B2"]
Input: S = "3z4"
Output: ["3z4", "3Z4"]
Input: S = "12345"
Output: ["12345"]
Note:
S will be a string with length at most 12. S will consist only of letters or digits.
结果是不看重顺序的
Solution
//cpp:
//String参数可以不为引用,就是顺序的差别
class Solution {
public:
void f(string &s, int i, vector<string> &v) {
if (i == s.length()) {
v.push_back(s);
return;
}
f(s, i + 1, v);
if (isalpha(s[i])) {
s[i] = isupper(s[i]) ? tolower(s[i]) : toupper(s[i]);
f(s, i + 1, v);
}
}
vector<string> letterCasePermutation(string S) {
vector<string> res;
f(S, 0, res);
return res;
}
};