Letter Tile Possibilities
给一个string, 问里面的字符能组成多少种string.
简单的组合问题.直接dfs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class Solution { public: int res = 0; int numTilePossibilities(string tiles) { vector<int> count(26, 0); for(auto c : tiles){ count[c - 'A']++; } dfs(count); return res; } void dfs(vector<int>& count){ for(int i = 0; i < count.size(); i++) { if(count[i] != 0){ count[i]--; res++; dfs(count); count[i]++; } } } }; |