力扣:活字印刷
你有一套活字字模 tiles,其中每個字模上都刻有一個字母 tiles[i]。返回你可以印出的非空字母序列的數目。
示例 1:
輸入:"AAB"
輸出:8
解釋:可能的序列為 "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"。
示例 2:
輸入:"AAABBC"
輸出:188
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/letter-tile-possibilities
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
我一開始把問題想的復雜了,一直想用數學辦法解決(我錯了,我不配!
class Solution { public://一開始進去是一個空串,也會++,所以設置-1int ans = -1;void Dfs(vector<int> count){ans++;//就是一個簡單的Dfs,因為說了只有26英文字母,如果更加多的話就用mulitset統計就好了for(int i = 0; i < 26; ++i){if(count[i] > 0){count[i]--;Dfs(count);count[i]++;}}}int numTilePossibilities(string tiles) {int len = tiles.length();vector<int>count(26,0);//就是一個簡單的統計for(int i = 0; i < len; ++i){count[tiles[i]-'A']++;}Dfs(count);return ans; } };?
總結
- 上一篇: 初入Linux,M35作业第二弹,牛刀小
- 下一篇: HTML网页设计:周杰伦网站