91-解码方法(分割整数)包含String相关方法

短信PUD编码 参考http://hi.baidu.com/mygia/blog/item/18032e7f149be81b29388afa.html smsEncodedNumber方法不对,已经按照规则http://wenku.baidu.com/view/bb06353043323968011c92f7.html修改 并且加了短信的分割和合并 import java.io.File; import j 阅读详情

题目

一条包含字母 A-Z 的消息通过以下映射进行了 编码 :

‘A’ -> 1
‘B’ -> 2
…
‘Z’ -> 26
要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“111” 可以将 “1” 中的每个 “1” 映射为 “A” ,从而得到 “AAA” ,或者可以将 “11” 和 “1”(分别为 “K” 和 “A” )映射为 “KA” 。注意,“06” 不能映射为 “F” ,因为 “6” 和 “06” 不同。

给你一个只含数字的 非空 字符串 num ,请计算并返回 解码 方法的 总数 。

题目数据保证答案肯定是一个 32 位 的整数。

示例 1:

输入:s = “12”
输出:2
解释:它可以解码为 “AB”(1 2)或者 “L”(12)。
示例 2:

输入:s = “226”
输出:3
解释:它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。
示例 3:

输入:s = “0”
输出:0
解释:没有字符映射到以 0 开头的数字。含有 0 的有效映射是 ‘J’ -> “10” 和 ‘T’-> “20” 。由于没有字符,因此没有有效的方法对此进行解码,因为所有数字都需要映射。
示例 4:

输入:s = “06”
输出:0
解释:“06” 不能映射到 “F” ,因为字符串开头的 0 无法指向一个有效的字符。

题解

class Solution {
    public int numDecodings(String s) {
        int n=s.length();
        if(s==null||n==0){
            return 0;
        }
        if(s.charAt(0)=='0'){
            return 0;
        }
        int[] dp=new int[n+1];
        dp[0]=1;
        dp[1]=s.charAt(0)=='0'?0:1;
        for(int i = 1; i < n; i++){
             if(s.charAt(i-1)=='1'||s.charAt(i-1)=='2'&&s.charAt(i)<'7'){
                //if(s.charAt(i)<'7'&&s.charAt(i-1)=='1'||s.charAt(i-1)=='2')就运行不成功?
                //&&代表短路与,若前一个元素是false,则无论第二个元素是什么,结果都为false!
                //正确的理解应该是(s.charAt(i-1)=='1')||(s.charAt(i-1)=='2'&&s.charAt(i)<'7')第一个代表十几,第二个代表20-26!
                //如果是20、10
                if(s.charAt(i) == '0') dp[i + 1] = dp[i - 1];
                //如果是11-19、21-26
                else dp[i + 1] = dp[i] + dp[i - 1];
            }else if(s.charAt(i) == '0'){
                //如果是0、30、40、50
                return 0;
            }else{
                //i-1和i无法构成一个字母
                dp[i + 1] = dp[i];
            }
        }
        return dp[n];
    }
}

笔记:

  1. 思路:

    dp[i]为长度为i的字符串所包含的译码数量。

    分为4种情况:

    可以和上一位合并–

    ​ 两种解s[i]=1-6,s[i-1]=1/2:dp[i]=dp[i-1]+dp[i-2]

    ​ 一种解s[i]=0,s[i-1]=1/2:dp[i]=dp[i-2]

    不可以和上一位合并–s[i]

    译码错误–s[i]=0,s[i-1]!=1/2 return 0

  2. 状态定义:若前 i 个字符可以解码,dp(i) 表示前 i 个字符可以解码的方法数。

  3. 遇到的问题:

    indexOutOfBounds:将i’改为从1-(n-1),再改一下dp。

    “2611055971756562”:

  4. String相关方法:

    获取:长度–int length()

    ​ 由位置获得字符–char charAt(int index);

    ​ 由字符获得位置–int indexOf(int ch);

    判断:是否包含子串–boolean contains(str);

    ​ 是否为空–boolean isEmpty();

    ​ 是否以指定内容开头–boolean startsWith(str);

    ​ 是否以指定内容结尾–boolean endsWith(str);

    ​ 内容是否相同–boolean equals(str);

    转换:数组–>字符串

    ​ String(char[]);

    ​ static String valueOf(char[]);

    ​ 字符串–>数组

    ​ char[] toCharArray();

    ​ byte[] getBytes();

    ​ 基本类型–>字符串

    ​ static String valueOf(int);

    ​ 123+"";

    替换:String replace(oldchar,newchar);

    切割:String[] split(regex);

    子串:String substring(begin);

    ​ String substring(begin,end);

    转换:大小写–String toUpper/LowerCase();

    ​ 去除两端空格–String trim();

    ​ 对两个字符串进行比较–int compareTo(string);

Docker登录凭证存储机制解析:从Base64解码到安全实践 在容器化技术普及的今天,Docker作为核心工具,其认证与凭证管理是开发运维中的基础环节。Base64编码作为一种通用的数据表示方式,常用于在文本协议中安全传输二进制信息,其原理是将二进制数据转换为可打印字符集。在Docker生态中,客户端默认将认证信息以Base64编码形式存储在本地配置文件中,这虽然方便了凭证的缓存与传输,但也带来了潜在的安全风险。理解这一机制的技术价值在于,它不仅是故障排查和凭证迁移的关键,更是进行安全审计、实施权限管控的基石。典型的应用场景包括CI/CD流水线的认证配置检查、多环境间 阅读详情

相关推荐

基于PyTorch与U-Net的医学图像分割实战:从零构建毕业设计项目

医学图像分割是计算机视觉与人工智能交叉领域的关键技术,其核心目标是对CT、MRI等医学影像中的特定组织或病灶进行像素级识别与勾画。其基本原理是利用深度学习模型,尤其是卷积神经网络(CNN),自动学习图像特征,实现从原始图像到分割掩码的端到端映射。该技术的核心价值在于能辅助医生进行定量分析、病灶定位和手术规划,提升诊断的客观性与效率,在肺部结节检测、脑肿瘤分割、视网膜病变分析等场景有广泛应用。本文聚焦于利用经典的U-Net架构与PyTorch框架,通过实战演示如何系统性地完成一个完整的医学图像分割项目,涵盖数

weixin_34294649的博客 354

91-pom 相关的配置,properties,build,repositories

将本地jar包添加到maven仓库。

1万+

SMTP流量分析与Base64解码实战:从邮件钓鱼攻击中提取隐藏数据

SMTP(简单邮件传输协议)是互联网电子邮件传输的核心协议,它定义了邮件客户端与服务器之间通信的规则。由于SMTP在设计之初未考虑加密,其通信内容常以明文形式传输,这使得网络流量分析成为可能。Base64编码作为一种将二进制数据转换为ASCII字符的编码方式,广泛应用于邮件附件和正文的传输,以确保数据能通过纯文本协议正确传递。理解SMTP协议交互流程和Base64编码原理,对于网络安全防护、威胁溯源和数字取证具有重要价值。在邮件钓鱼攻击、CTF竞赛取证等场景中,攻击者常将恶意载荷(如钓鱼链接、可执行文件)进

weixin_30294295的博客 388

python基础——字符串和编码

  python基础——字符串和编码   字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。   因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节...

weixin_34269583的博客 187

CTF密码学实战:ROT13与MD5哈希的混合破解技术解析

密码学是信息安全的核心基础,其核心原理在于通过算法对信息进行编码与加密,确保数据的机密性和完整性。哈希函数作为密码学的重要分支,能够将任意长度的输入映射为固定长度的输出,具有单向性和抗碰撞性等特性,广泛应用于数据校验、数字签名等领域。MD5作为一种经典的哈希算法,尽管其安全性已被证实存在缺陷,但在理解哈希函数原理和暴力破解技术方面仍具有重要教学价值。在工程实践中,针对MD5等哈希值的破解常采用字典攻击和暴力枚举等方法,结合特定场景的优化策略,如彩虹表、多进程并行计算等,以提高破解效率。本文以一道典型的CTF

weixin_33861800的博客 421

大模型元数据提取三段式算法:稳准可审计的工程实践

元数据提取是将非结构化文档(如PDF、扫描件)转化为结构化字段的关键技术,其核心挑战在于平衡准确性、鲁棒性与可审计性。传统方法依赖端到端大模型、纯规则或RAG,但易受OCR噪声、排版混乱和语义歧义影响,导致字段错标、不可追溯。本文提出的三段式算法——预处理(坐标感知文本解析)、锚点定位(轻量模型+空间特征识别)、结构化精炼(约束解码+Schema校验)——通过分治设计实现‘稳’(多模态兼容)、‘准’(字段严格溯源)、‘可审计’(页码+行号级定位)。该方案已落地于学术出版、专利审查与数字档案系统,支持本地部署

weixin_30920513的博客 366

文字编解码

URL编码 URL会使用key=value的形式传参,键值对间使用&分隔。 如果value的值包含了特殊字符,就会引起歧义。 常见字符的Url编码列表: ! * " ’ ( ) ; : @ & %21 %2A %22 %27 %28 %29 %3B %3A %40 %26 = + $ , / ? % # [ ] %3D %2B %24 %2C %2F %3F %25 %23 %5B %5D Javascript中Url编码函数 安全字符(函数不会对这些字符

liubo0525 1391

大模型驱动的智能标注系统:解决NLP数据质量顽疾

在自然语言处理(NLP)工程实践中,高质量标注数据是模型泛化能力的基石,但传统人工标注长期受困于语义鸿沟、成本爆炸与质量黑洞三大系统性瓶颈。随着大语言模型(LLM)技术成熟,‘AI辅助标注’正从概念走向可审计、可复现、可规模化落地的工程现实。其核心原理并非替代人类,而是通过结构化提示引擎、轻量级领域适配器(如LoRA)与人机协同校验闭环,将专家经验转化为可执行规则,实现精度、速度与可控性的动态平衡。该技术已广泛应用于医疗实体识别、金融事件抽取、法律条款标注等高专业门槛场景,显著降低bad case中由标注引

chouxuyi9789的博客 584

HTTP 协议详解

本文介绍了HTTP协议的基础知识,包括其无连接、无状态特性以及URI/URL编码规则。重点分析了HTTP请求/响应格式,详细讲解了GET/POST方法的应用场景和区别,并列举了常见的HTTP状态码和Header字段。文章通过代码示例展示了HTTP服务器的实现原理,包括静态资源处理、动态交互、Cookie/Session管理等核心功能。最后梳理了HTTP各版本的技术演进,从HTTP/0.9到HTTP/3.0的性能优化路径。内容涵盖HTTP协议从基础到实践的完整知识体系,适合作为网络开发的参考指南。

Small_entreprene的博客 7981

Java前后端AES加密交互实战:从原理到Spring Boot实现

在前后端分离架构中,数据传输安全是保障用户隐私和业务完整性的基石。对称加密算法作为数据加密的核心技术,通过使用同一密钥进行加解密,在性能与安全性之间取得了良好平衡。AES(高级加密标准)作为目前最广泛采用的对称加密算法,以其高安全性和高效率成为保护敏感信息的首选。其技术价值在于能够有效防止数据在传输过程中被窃取或篡改,尤其适用于用户登录、支付交易等关键业务场景。在实际工程实践中,结合Java后端与JavaScript前端实现AES加密交互,需要重点关注密钥管理、工作模式选择和异常处理等环节。通过Spring

weixin_33698823的博客 356

AI科研搭档:多角色协同的论文分析系统设计与实现

科研论文分析已从简单摘要生成,演进为面向知识结构化、可验证推理与跨文档关联的智能工作流。其核心在于突破单一大模型在公式解析、图表理解、实验审计与技术谱系构建上的能力边界,依托分层解耦架构实现信息捕获→逻辑验证→知识编织的闭环。动态知识图谱(DKG)替代传统RAG,支撑实体对齐、关系推理与时间演化建模;Scanner/Decoder/Auditor/Synthesizer四角色协同,覆盖从PDF解析到领域知识库沉淀的全链路。该范式正成为AI for Science基础设施的关键演进方向。

weixin_30323631的博客 289

萤火虫观萤生态基于HarmonyOS ArkTS API 24通过属性方法链(如 .fontSize()、.fontColor()、.padding()、.borderRadius())来配置组件外观

在任何应用开发中,数据模型的设计都是最基础也是最重要的环节之一。良好的数据模型能够清晰地表达业务逻辑,减少运行时错误,并为后续的功能扩展提供便利。RecipeInfoStepInfoLearnStat和ColorToken,分别对应菜谱信息、食材信息、烹饪步骤、学习统计和颜色令牌。通过对这款基于 HarmonyOS ArkTS 开发的"美味厨房"菜谱教学应用的全面深度解析,我们可以看到,一个优秀的移动应用不仅需要功能完善,更需要在架构设计、视觉体验和代码质量上达到高度的统一。

jin123322的博客 170

11、欧洲葡萄牙语文本可读性分类系统解析

本文详细解析了用于欧洲葡萄牙语教学的文本可读性分类系统。系统通过提取52个语言特征(包括词性、组块、动词、音节等),结合STRING和YAH等NLP工具,构建高效的可读性分类器。分类器在五级(A1-C1)和三级(A-B-C)任务中分别达到75.11%和81.44%的准确率,并通过直观的Web界面提供结果展示。文章还探讨了系统的优势、挑战及未来发展方向,如无监督学习和特征优化,以提升教学材料选择的效率与准确性。

qsc90123456的博客 71

Claude Opus 4.7深度解析:交互协议重写与工程可用性跃迁

大语言模型的演进正从单纯追求参数规模和基准分数,转向以工程落地为核心的‘可用性’竞争。所谓SOTA,已不再局限于MMLU或GPQA等学术指标,而是体现在任务完成率、跨轮次一致性、指令锚定精度等真实工作流指标上。Claude Opus 4.7正是这一范式转移的标志性产物——它通过重构对话协议、强化system prompt约束机制、引入动态token流控与意图-约束图谱解码,显著提升中台工程师、合规审核员、技术文档架构师等高频使用者的协作效率。其核心价值在于将抽象语言能力翻译为可预测、可复用、可嵌入现有GPT

weixin_34216196的博客 375

【信息科学与工程学】【审计学】第一篇 招投标领域审计算法01

在每个关键流程节点(如文件上传、开标唱标、评标结束), 计算该环节所有电子文件的数字指纹(如SHA-256哈希值), 并将指纹和元数据(时间、操作人)上链存证。:从发票、合同中提取材料品名、规格、采购价、时间、地点。:对每个供应商, 提取其在历史投标中的行为序列特征, 如:中标率、与特定伙伴同时投标率、自身高报价次数、在伙伴中标项目中的“弃标”或“无效标”次数。:监控开标、评标现场音视频, 识别异常情绪(激烈争吵)、敏感关键词(“打点”、“关照”)、异常物品传递、私下交流等违规行为。

weixin_49199313的博客 819

python学习笔记day3

类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类中定义的函数。类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。类变量或者实例变量用于处理类及其实例对象的相关的数据。如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。定义在方法中的变量,只作用于当前实例的类。

X_xiaojuzi的博客 232

LSTM 怎么进行二维数据的输入呢

尽管LSTM并不天然地适用于处理图像、视频等二维数据,但通过时间序列化、卷积特征提取和双向LSTM等方法,我们可以将二维数据转化为适合LSTM输入的形式,从而利用LSTM的强大记忆能力和长期依赖学习能力对二维数据进行建模。未来的研究方向可以考虑将LSTM与其他模型结合,例如将LSTM与卷积神经网络(Convolutional Neural Network, CNN)结合,利用CNN提取图像的空间特征,然后利用LSTM学习时间序列的长期依赖;

xiamu_CDA的博客 1039

GPT-5.5是真是假?一文看懂大模型代际演进与技术甄别方法

大语言模型(LLM)的代际命名并非简单版本号迭代,而是反映架构升级、训练范式变革与能力维度拓展的技术里程碑。理解GPT-3.5、GPT-4、GPT-4o等官方模型的真实演进逻辑,是识别虚假信息如‘GPT-5.5’的前提;其核心原理在于混合专家(MoE)结构、多模态原生对齐、RLHF 2.0等可验证技术突破,而非营销话术或开源社区戏称。这类能力跃迁直接决定模型在金融投研、政务公文、教育辅导等高价值场景中的工程落地效果。当前真实可用的最强闭源模型(如GPT-4o、Claude 3.5)与开源旗舰(如Qwen2、

409

基于HPM5E00的EtherCAT从站开发实战:从硬件解析到软件调试

实时工业以太网通信是工业自动化与运动控制领域的核心技术,它通过硬件与协议栈的协同,实现了微秒级的高确定性数据交换。其技术价值在于为多轴同步、机器人控制等复杂场景提供了高实时性、高同步精度的通信基础。在应用场景上,广泛服务于数控机床、包装机械、半导体设备等高端制造领域。本文聚焦于EtherCAT从站开发,深入解析了基于先楫HPM5E00高性能MCU与专用从站控制器(ESC)的硬件架构设计,并详细阐述了开源协议栈SOES的移植、对象字典配置以及过程数据(PDO)映射等核心软件实践,为开发者快速构建稳定可靠的实时

weixin_30915951的博客 501

CANoe实战:LIN Slave一致性测试全流程解析

本文详细解析了使用CANoe进行LIN Slave一致性测试的全流程,包括测试概述、环境搭建、模块集成、测试用例详解及报告分析。通过实际案例分享,帮助工程师掌握LIN 2.0/2.1/2.2、SAE J2602和ISO 17987等标准的自动化测试方法,提升汽车电子从节点的可靠性和兼容性验证效率。

weixin_42665725的博客 533

Java算法(高)

回溯算法也叫试探法,是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。在探路的过程中一般使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。从前面对回溯算法的说明可以看到,回溯的本质是穷举,穷举所有可能,然后选出想要的答案,只是在穷举的过程中可以根据一些条件避免无效的遍历,这个避免的过程也叫剪枝。所以回溯法并不是什么很高效的算法,那么既然回溯法并不高效为什么还要用呢?因为一些问题只能靠暴力搜索,没有更高效的解法。

渔阳的博客 1151

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 画好后效果图 实现代码如下 import matplotlib.pyplot as plt #算法平均排名 _alg_=[1.405,2.643,2.786,2.167] y=[1,2,3,4]#alg1,alg2,alg3,alg4 通过Nemenyi测试计算得到的临界值CD CD=1.024 h_CD=CD/2 plt.figure(figsize=(10,6)) plt.scatter(_alg_,y,s=10

大模型天花板 4465
上一篇: 279-完全平方数(分割整数 包含set相关方法)
下一篇: 203-移除链表元素
codrab
博客等级 码龄10年 15粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codrab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值