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;
}
};
本文深入探讨了LeetCode上的经典算法题活字印刷,通过详细的思路分析和代码实现,介绍了如何使用计数和深度优先搜索(DFS)来解决组合问题。通过对字符串中每个字符的出现次数进行计数,然后利用DFS进行枚举,实现了所有可能的组合,最终返回所有可能的组合数量。

775

被折叠的 条评论
为什么被折叠?



