刷题笔记-活字印刷
題目描述
https://leetcode-cn.com/problems/letter-tile-possibilities/
解題思路
首先要用 map 記錄字符串中各大寫字母出現的次數。每次從map中取出一個字符個數不為 0 的字符(不同的字符對應著不同的字符串排列可能),取到一個字符后,要將字符個數減 1,進入下一次 DFS 迭代。
實現
class Solution { public:void dfs(map<char,int>& mp, int& num){for(auto& m:mp){//這里一定要是引用!!!!否則只是修改了m,并不會修改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;} };總結
- 上一篇: java如果判断文件夹或文件不存在就创建
- 下一篇: kubenetes入门学习-十-serv