leetcode 784. Letter Case Permutation
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.
思路:暴力枚举呗
class Solution {
public:
vector<string> ans;
int judge(char c) {
if (c <= 'Z' && c >= 'A') return 1;
if (c <= 'z' && c >= 'a') return -1;
return 0;
}
void dfs(int n, string& s) {
if (n == s.size()) {
ans.emplace_back(s);
return ;
}
if (judge(s[n]) != 0) {
s[n] = tolower(s[n]);
dfs(n+1, s);
s[n] = toupper(s[n]);
s[n] = toupper(s[n]);
dfs(n+1, s);
s[n] = tolower(s[n]);
}
else dfs(n+1, s);
}
vector<string> letterCasePermutation(string S) {
dfs(0, S);
return ans;
}
};
原文地址:http://www.cnblogs.com/pk28/
与有肝胆人共事,从无字句处读书。
欢迎关注公众号:
欢迎关注公众号: