0%

LeetCode 784. Letter Case Permutation

题目

原题在此

解析

  1. letter ^= 32可以切换大小写.
  2. 递归的回溯法可以遍历所以组合.

代码

c++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
vector<string> letterCasePermutation(string S) {
vector<string> wjl;
permutation(wjl, S, 0);
return wjl;
}

private:
void permutation(vector<string>& wjl, string s, int index) {
wjl.push_back(s);
if(index >= s.size()) return;

for(int i = index; i < s.size(); i++) {
if (isalpha(s[i])) {
s[i] ^= 32;
permutation(wjl, s, i + 1);
s[i] ^= 32;
}
}
}
};