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

Leetcode2414:最长的字母序连续子字符串的长度

 题目描述:

字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。

  • 例如,"abc" 是一个字母序连续字符串,而 "acb" 和 "za" 不是。

给你一个仅由小写英文字母组成的字符串 s ,返回其 最长 的 字母序连续子字符串 的长度。

代码思路:

  1. 初始化变量
    • left 和 right:这两个变量分别表示当前考察的连续子字符串的左右边界。初始时,left 设为 0,right 设为 1,表示从字符串的第二个字符开始向右扩展考察。
    • ans:用来记录目前找到的最长的字母序连续子字符串的长度。初始时,由于每个字符自身都可以看作是一个长度为 1 的连续子字符串,所以 ans 设为 1。
  2. 遍历字符串
    • 使用一个 while 循环遍历字符串,直到 right 达到字符串的长度。
    • 在循环内部,首先检查当前字符 s[right] 和前一个字符 s[right - 1] 是否是连续的(即 ord(s[right]) - ord(s[right - 1]) == 1)。这里 ord() 函数用于获取字符的 ASCII 值。
  3. 更新最长长度
    • 如果当前字符和前一个字符是连续的,则更新 ans 为当前考察的子字符串长度(right - left + 1)和之前记录的最长长度 ans 中的较大值。
    • 如果当前字符和前一个字符不连续,则将 left 更新为 right,表示重新开始考察一个新的连续子字符串。
  4. 移动右边界
    • 无论是否连续,每次循环都将 right 加 1,以继续向右扩展考察。
  5. 返回结果
    • 当 right 遍历完整个字符串后,返回 ans,即最长的字母序连续子字符串的长度。

代码实现:

class Solution:
    def longestContinuousSubstring(self, s: str) -> int:
        left, right = 0, 1
        ans = 1
        while right < len(s):
            if ord(s[right]) - ord(s[right - 1]) == 1:
                ans = max(ans, right - left + 1)
            else:
                left = right
            right += 1

        return ans

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/42518.html

相关文章:

  • Python测试框架Pytest的参数化
  • Python基于Django的网络课程在线学习平台【附源码】
  • 【Java面试】JVM汇总
  • STM32G431RBT6——(1)芯片命名规则
  • SpringCloud之Eureka、Ribbon、OpenFeign
  • 使用Spring Boot与达梦数据库(DM)进行多数据源配置及MyBatis Plus集成
  • 【Python修仙编程】(二) Python3灵源初探(4)
  • 泛型编程、函数模板、类模板
  • 【Pandas】pandas Series fillna
  • AIGC生图产品PM必须知道的Lora训练知识!
  • 服务端驱动UI架构解析:React Server Components与流式渲染的革命
  • 大模型(DeepSeek),具身智能,VLA(pi0),机器人,全网资料总结。
  • C++ AVL树详解(含模拟实现)
  • Windows环境下SuperMapGIS 11i 使用达梦数据库
  • 一个借助ai分析市场交易数据的流程方法
  • 2. 在后端代码中加入日志记录模块
  • XR应用测试:探索虚拟与现实的边界
  • Qt基于等待条件QWaitCondition实现的任务队列模型示例
  • 涨薪技术|掌握带安全认证的接口测试
  • 一文详解基于NarrotoAI的短剧短视频自动解说、混剪AI平台搭建
  • Kubernetes LimitRange对于pod 的 update 事件会不会处理?
  • DMA发送全部历史记录数据到串口
  • AWS SQS跨账户访问失败排查指南
  • (转)Java多态`
  • AI大模型-提示工程学习笔记22-元提示(meta-prompting)
  • GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作
  • 智能机器人加速进化:AI大模型与传感器的双重buff加成
  • 华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】
  • 活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京
  • 物理竞赛中的线性代数