asp网站 并发数,网站群建设座谈会,株洲seo网站优化软件,说做网站被收债文章目录1. 题目2. 解题类似题目
78 子集、
90 子集 II1. 题目
你有一套活字字模 tiles#xff0c;其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。
示例 1#xff1a;输入#xff1a;AAB
输出#xff1a;8
解释#xff1a;…
文章目录1. 题目2. 解题类似题目
78 子集、
90 子集 II1. 题目
你有一套活字字模 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 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
回溯按照字符串长度sublen从1到n分别进行n次回溯每次回溯退出条件字符长度达到sublen避开重复后面跟left相同的字符跳过不同的字符与left位置字符交换下一次递归时left1curlen1 class Solution {
public:int numTilePossibilities(string tiles) {int kinds 0;sort(tiles.begin(), tiles.end());for(int sublen 1; sublen tiles.size(); sublen){bt(tiles,kinds,0,tiles.size()-1,sublen,0);} return kinds;}void bt(string tiles, int kinds, int left, int right, int sublen, int curlen){if(curlen sublen)kinds;else{for(int i left; i right; i){if(i left tiles[i] tiles[left])continue;swap(tiles[left],tiles[i]);bt(tiles,kinds,left1,right,sublen,curlen1);}} }
};