刷题笔记-活字印刷
題目描述
https://leetcode-cn.com/problems/letter-tile-possibilities/
解題思路
首先要用 map 記錄字符串中各大寫字母出現(xiàn)的次數(shù)。每次從map中取出一個(gè)字符個(gè)數(shù)不為 0 的字符(不同的字符對(duì)應(yīng)著不同的字符串排列可能),取到一個(gè)字符后,要將字符個(gè)數(shù)減 1,進(jìn)入下一次 DFS 迭代。
實(shí)現(xiàn)
class Solution { public:void dfs(map<char,int>& mp, int& num){for(auto& m:mp){//這里一定要是引用!!!!否則只是修改了m,并不會(huì)修改mpif(m.second){++num;--m.second;dfs(mp, num);++m.second;}}}int numTilePossibilities(string tiles) {int num=0, i=0;map<char,int> mp;while(tiles[i]!='\0'){mp[tiles[i]]++;++i;}dfs(mp,num);return num;} };總結(jié)
- 上一篇: java如果判断文件夹或文件不存在就创建
- 下一篇: kubenetes入门学习-十-serv