Letter Tile Possibilities

给一个string, 问里面的字符能组成多少种string.

简单的组合问题.直接dfs

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]++;
            }
        }
    }
     
};