生活随笔
收集整理的這篇文章主要介紹了
1079 活字印刷
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
你有一套活字字模 tiles,其中每個字模上都刻有一個字母 tiles[i]。返回你可以印出的非空字母序列的數目。
注意:本題中,每個活字字模只能使用一次。
示例 1:
輸入:“AAB”
輸出:8
解釋:可能的序列為 “A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。
示例 2:
輸入:“AAABBC”
輸出:188
提示:
1 <= tiles.length <= 7
tiles 由大寫英文字母組成
方法1:
主要思路:解題鏈接匯總
(1)回溯;
class Solution {
public:void dfs(string
&tiles
,vector
<bool>& visited
,int&res
){for(int i
=0;i
<tiles
.size();++i
){if(i
>0&&tiles
[i
]==tiles
[i
-1]&&visited
[i
-1]==false){continue;}if(visited
[i
]==false){++res
;visited
[i
]=true;dfs(tiles
,visited
,res
);visited
[i
]=false;}}}int numTilePossibilities(string tiles
) {vector
<bool> visited(tiles
.size(),false);sort(tiles
.begin(),tiles
.end());int res
=0;dfs(tiles
,visited
,res
);return res
;}
};
總結
以上是生活随笔為你收集整理的1079 活字印刷的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。