Description
Solution
class Solution {
public:
int numTilePossibilities(string tiles) {
int count[26] = {0};
for(char ch: tiles){
count[ch-'A']++;
}
return dfs(count);
}
int dfs(int count[]){
int res = 0;
for(int i =0; i< 26; i++){
if(count[i]==0)
continue;
res++;
count[i]--;
res += dfs(count); // NOTE!!!
count[i]++;
}
return res;
}
};
Conclusion
- tree hashtable backtracking
LeetCode 第 1079 题:“活字印刷”题解 | LeetCode 题解 (liweiwei1419.github.io) 回溯算法(设计递归函数的返回值) - 活字印刷 - 力扣(LeetCode)
- 题解的配图太棒了