题目链接:1079.活字印刷
class Solution {int res;public int numTilePossibilities(String tiles) {int a[] = new int [26];for (int i = 0; i <tiles.length() ; i++) {a[tiles.charAt(i)-'A'] = a[tiles.charAt(i)-'A']+1;}res =0;god(a);return res;}public void god(int a[]){for (int i = 0; i <a.length ; i++) {if(a[i]==0){continue;}res+=1;a[i]=a[i]-1;god(a);a[i] = a[i]+1;}return;}}

我们只要一开始做一个字母频次统计,如果当前这个字母的频次为 00,就不再往下执行,马上要回溯了,在回溯的过程中一定要记得状态重置。**
