原题链接:Leecode 1079. 活字印刷
class Solution {
public:
vector<int> v;
int res=0;
void dfs(string tiles)
{
for(int i=0;i<tiles.size();i++)
{
if (v[i] || (i && tiles[i]==tiles[i-1] && !v[i-1])) continue;
v[i]=1;
res++;
dfs(tiles);
v[i]=0;
}
}
int numTilePossibilities(string tiles) {
sort(tiles.begin(),tiles.end());
v.resize(tiles.size());
dfs(tiles);
return res;
}
};