你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。

注意:本题中,每个活字字模只能使用一次。

示例 1:

输入:“AAB”
输出:8
解释:可能的序列为 “A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。

代码

class Solution {int n,ans=0;public int numTilePossibilities(String tiles) {n=tiles.length();Map<Character,Integer> map=new HashMap<>();for(char c:tiles.toCharArray()) map.put(c,map.getOrDefault(c,0)+1);//统计可用字母numTile(map,0);return ans-1;}public void numTile(Map<Character,Integer> map,int level) {ans++;if(level==n) return;for (char c:map.keySet())//可选择的字母{if(map.get(c)<1) continue;//没有剩下的了map.put(c,map.get(c)-1);numTile(map, level+1);map.put(c,map.get(c)+1);//回溯}}
}

leetcode1079. 活字印刷(回溯)相关推荐

  1. c# leetcode1079. 活字印刷(回溯算法)

    你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i].返回你可以印出的非空字母序列的数目.示例 1:输入:"AAB" 输出:8 解释:可能的序列为 &quo ...

  2. leetcode1079.活字印刷C++

    链接: https://leetcode-cn.com/problems/letter-tile-possibilities/ 描述: 示例: 代码: class Solution {public:v ...

  3. LeetCode1079题:活字印刷——Python递归与迭代解法

    1. LeetCode1079题:活字印刷 你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i].返回你可以印出的非空字母序列的数目. 注意:本题中,每个活字字模只能使用一次. ...

  4. 高级数据结构与算法 | 回溯算法(Back Tracking Method)

    文章目录 回溯 电话号码的字母组合 二进制手表 组合总数 全排列 活字印刷 N皇后 N皇后II 回溯 回溯是一种通过穷举所有可能情况来找到所有解的算法.如果一个候选解最后被发现并不是可行解,回溯算法会 ...

  5. ZJYYOJ 活字印刷(dfs)[C,C++]

    目录 题目及翻译 题面 输入 输出 输入样例 输出样例 提示 题目思路 注意事项 AC代码 C/C++(几乎没有代码变更) 题目及翻译 题面 活字印刷术是中国古代四大发明之一,今天我们要试着用计算机实 ...

  6. 递归和回溯相关面试算法总结

    文章目录 递归面试算法总结 1. LeetCode 剑指 Offer 07 : 重建二叉树 2. LeetCode 687 : 最长同值路径 3. LeetCode 面试题 08.06 : 汉诺塔问题 ...

  7. Leetcode.1079 活字印刷

    题目链接 Leetcode.1079 活字印刷 Rating : 1741 题目描述 你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i].返回你可以印出的非空字母序列的数目. ...

  8. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  9. 算法设计与分析第5章 回溯法(二)【回溯法应用】

    第5章 回溯法 5.2 应用范例 1.0-1背包问题 有n件物品和一个容量为c的背包.第i件物品的重量是w[i],价值是p[i].求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和 ...

最新文章

  1. [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
  2. springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
  3. java中哪个是main函数的合法参数,Java试卷及答案
  4. c语言编译错误 原文,C语言常见错误与警告
  5. zookeeper启动失败
  6. 大牛滴今天就是我滴明天
  7. Python之数据分析(算数平均值、加权平均值、最大值与最小值)
  8. 基于Vue2.0+Vuex+Axios+NodeJs+Express+MySQL实现京东移动web商城
  9. b级计算机机房标准,B级电子信息系统机房技术要求国标GB50174–2008
  10. 【眼底图像数据集】视杯 视盘分割
  11. Python tkinter的简单使用,在绘布上播放GIF和图片
  12. ieg技术总监_干货!从程序员到技术总监,大牛内部分享的资料
  13. 这才是2019年最新资料!
  14. 阿里,京东,蚂蚁面试题
  15. 用CH340给STM32C8T6和野火stm32F103Mini板下载程序需要注意的三个问题
  16. Win11怎么打开3D查看器
  17. 淘宝天猫商家运营,运营能力提升,淘宝竞争对手的分析,如何学习对手的优势运营方法
  18. 自学java多久可以工作_自学java,学多久可以自己找到工作?
  19. Qt QImage与OpenCV Mat转换
  20. 基于springboot高考填报志愿综合参考系统设计与实现-计算机毕业设计源码+LW文档

热门文章

  1. Maya Mel 数组相关代码笔记
  2. WEB方面面试题详解
  3. oracle导出exp步骤,oracle数据导出导入(exp/imp)
  4. Laravel自定义artisan命令在Sell中运行
  5. R语言)不依赖求导的寻根方法:Nelder-Mead方法
  6. 手把手教您搭建 AWS 大数据云平台
  7. 史上最详细的ConcurrentHashMap详解--源码分析
  8. 正弦定理和余弦定理_考查正余弦定理运用,我的班很多同学做不出第2题
  9. 学习PLC LAD 梯形逻辑宝藏网站
  10. 20个VC开发小技巧