当前位置: 首页 > news >正文

【中等】数字字符串转换为字母组合的种数-Java:解法一

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程大家好!欢迎来到我的网站! 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑,人工智能时代就要来临了,科… 继续阅读 前言https://www.captainai.net/troubleshooter

package live.every.day.ProgrammingDesign.CodingInterviewGuide.RecursionAndDynamicPrograming; /** * 数字字符串转换为字母组合的种数 * * 【题目】 * 给定一个字符串str,str全部由数字字符组成,如果str中某一个或某相邻两个字符组成的子串值在1~26之间,则这个子串可以转换 * 为一个字母。规定"1"转换为"A","2"转换为"B","3"转换为"C"..."26"转换为"Z"。写一个函数,求str有多少种不同的转换结 * 果,并返回种数。 * * 【难度】 * 中等 * * 【解答】 * 暴力递归的方法。假设str的长度为N,先定义递归函数p(i)(O≤i≤N)。p(i)的含义是str[0..i-1]己经转换完毕,而str[i.N-1] * 还没转换的情况下,最终合法的转换种数有多少并返回。特别指出,p(N)表示str[0..N-1](也就是str的整体)都己经转换完,没有 * 后续的字符了,那么合法的转换种数为1,即p(N)=1。那么p(i)如何计算呢?只有以下4种情况。 * 如果i=N。根据上文对p(N)=1的解释,直接返回1。 * 如果不满足情况1,又有str[i]='0'。str[0..i-1]已经转换完毕,而str[i..N-1]此时又以'0'开头,str[i..N-1]无论怎样 * 都不可能合法转换,所以直接返回0。 * 如果不满足情况1和情况2,说明str[i]属于'1~9',str的可以转换为'A~I',那么p(i)的值一定包含p(i+1)的值,即p(i)=p(i+l)。 * 如果不满足情况1和情况2,说明str[i]属于'1~9',如果又有str[i..i+l]在'10~26'之间,str[i..i+1]可以转换为'J~Z', * 那么p(i)的值一定也包含p(i+2)的值,即p(i)+=p(i+2)。 * * 具体过程请参看如下代码中的num1方法。 * * @author Created by LiveEveryDay */ public class NumStr2LetterCombination1 { public static int num1(String str) { if (str == null || str.equals("")) { return 0; } char[] chs = str.toCharArray(); return process(chs, 0); } private static int process(char[] chs, int i) { if (i == chs.length) { return 1; } if (chs[i] == '0') { return 0; } int res = process(chs, i + 1); if (i + 1 < chs.length && (chs[i] - '0') * 10 + chs[i + 1] - '0' < 27) { res += process(chs, i + 2); } return res; } public static void main(String[] args) { String str = "1111"; System.out.printf("The num is: %d", num1(str)); } } // ------ Output ------ /* The num is: 5 */
http://www.jsqmd.com/news/841380/

相关文章:

  • Cyber​​ RT 开发人员工具
  • Go语言文件自动化管理工具Cellar:基于规则引擎的智能整理方案
  • 用两个栈实现队列-C++
  • 盘锦黄金回收白银回收铂金回收钻石回收贵金属回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • 程序员的“中年危机”:我靠这6个方法成功转型
  • 小红勇闯地下城【牛客tracker 每日一题】
  • 【中等】数字字符串转换为字母组合的种数-Java:解法二
  • 基于OpenCV与全志T527的嵌入式手势识别:从算法到工程实践
  • 佛山广州佛山五大校区培训哪家好?全日制培训班推荐 - 检测回收中心
  • 零基础也能玩转Switch破解:TegraRcmGUI图形化注入工具完全指南
  • 国产多模态大模型:科学计算领域的“新质生产力”
  • 钦州黄金手镯回收纯银回收白金回收50分钻石回收二手钻石回收高价多少钱一克同城价格查询上门上门估价闲置变现转让靠谱权威排行榜 - 检测回收中心
  • 给 AI加长期记忆:再也不用每次重新交接项目了
  • 【LLM】code agent bench
  • 钦州黄金项链回收老银器回收旧铂金回收1克拉钻石回收二手铂金回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • 用TP4056、PW5300和PW2051搞定你的STM32项目供电:从3.7V锂电池到3.3V/5V的完整电路设计
  • Stripe CLI安全最佳实践:如何保护你的API密钥和敏感数据
  • kube-lego深度探索:HTTP-01挑战实现原理与源码分析
  • Namshi/JOSE API参考手册:所有签名算法的详细说明
  • 平顶山黄金戒指回收白银首饰回收高价铂金回收品牌钻戒回收二手白银回收高价多少钱一克同城价格查询上门上门估价闲置变现转让靠谱权威排行榜 - 检测回收中心
  • 佛山广州高职高考封闭班培训哪家好?全日制培训班推荐 - 检测回收中心
  • Win11Debloat:终极Windows系统优化指南,三分钟提升电脑性能38%
  • VNC实战:解锁VMware虚拟机远程桌面访问的完整配置指南
  • 钦州金条回收银条回收铂金项链回收克拉钻石回收婚嫁首饰回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • 如何快速上手ActionView:5分钟完成项目配置和问题创建
  • 3步掌握Demucs-GUI:新手快速入门音乐分离工具
  • 3步搭建免费网盘直链解析服务:彻底告别下载限速烦恼
  • 2026届毕业生推荐的十大AI辅助写作方案横评
  • AI智能体开发框架agentseed:模块化设计与生产级实践指南
  • 从测试系统走向生产系统,SAP S/4HANA Cloud Public Edition 生产系统初始化落地指南