1079. 活字印刷
题目
思路
先计数,dfs组合枚举。
代码
class Solution {
public:
int numTilePossibilities(string tiles) {
unordered_map<char,int> num;
for(int i=0;i<tiles.size();i++)
num[tiles[i]-'A']++;
return dfs(num);
}
int dfs(unordered_map<char,int> num)
{
int n=0;
for(unordered_map<char,int>::iterator it=num.begin();it!=num.end();it++)
{
if(it->second)
{
n++;
it->second--;
n+=dfs(num);
it->second++;
}
}
return n;
}
};