剑指 Offer 48. 最长不含重复字符的子字符串(java+python)

2023-11-07

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3

示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

提示:

s.length <= 40000

思路

i=start j=end j++ 更新i位置为 长度len=j-i+1 更新存储更大的len

java

class Solution {
    public int lengthOfLongestSubstring(String s) {
        int[] array = new int[128];
        int len=0;
        for(int i=0,j=0;j<s.length();j++ ) {
            i=Math.max(array[s.charAt(j)],i);
            len=Math.max(j-i+1,len);
            array[s.charAt(j)]=j+1;
        }
        return len;
    }
}

python

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        dic={}
        tmp=res=0
        for j in range(len(s)):
            i=dic.get(s[j],-1)
            dic[s[j]]=j
            if tmp<j-i:
                tmp=tmp+1 
            else:
                tmp=j-i
            res=max(tmp,res)
        return res
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

剑指 Offer 48. 最长不含重复字符的子字符串(java+python) 的相关文章

随机推荐

  • 在项目中巧用JdbcTemplate,提高开发效率与运行速度

    目前基于框架的开发 大部分都是分层明确的 控制层 controller 逻辑层 Service 数据操作层 Mapper层 但是程序就相当于一个马拉松运动员 总路程越长 耗费的时间也就越长 所以 我们可以在一些代码复用率比较低的接口上 比如
  • LVM(逻辑卷管理)与磁盘配额设置和测试

    一 LVM 1 1 物理卷 卷组 逻辑卷的概述 物理卷PV 物理卷是 LVM 机制的基本存储设备 通常对应为一个普通分区或整个硬盘 创建物理卷时 会在分区或硬盘的头部创建一个保留区块 用于记录 LVM 的属性 并把存储空间分割成默认大小为
  • openssl evp 对称加密(AES_ecb,ccb)

    openssl evp 对称加密 AES ecb ccb evp h 封装了openssl常用密码学工具 以下主要说对称加密的接口 1 如下使用 aes 256 ecb 模式的加密解密测试代码 unsigned char key 32 1
  • ADADELTA

    1 现状 大多数的梯度下降算法都需要选择学习率的超参数 设置学习率通常要不断调整 而较好的学习率一般是手动设置的 学习率设置的过高会使得系统发散 但选择的过小又会使学习过程变慢 对于很多问题而言 选择一个好的学习率更像是艺术而不是科学 2
  • 倒置单链表

    倒置链表 一道被出烂的题目 完整实现如下 include
  • 51单片机:在2位数码管上循环显示00-99,间隔0.5秒

    原理图 include
  • 基于Sqli-Labs靶场的SQL注入-23~24关

    目录 Less23 注释符被过滤的情况下注入 爆破数据库名 爆破表名 爆破列名 爆破字段值 23关小结 Less24 二次注入 二次注入理解及原理 修改管理员账户密码 总结 Less23 注释符被过滤的情况下注入 首先我们进入23关 可以发
  • 合宙Air105

    基础资料 基于Air105开发板 Air105 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 官方fonts库函数介绍以及利用mcu ticks 计算程序运行周期相关内容的学习及探讨 软件版本 AIR105 LuatOS
  • Spring中classpath代表的意思

    本文内容整理来源 http www cnblogs com aiugu p 6081989 html 看了这位同学整理的关于Spring中classpath意思的解释 有了一个直观的认识 图文并茂 浅显易懂 哈 在整个项目运行的时候 jav
  • 查看电脑配置命令_注册表

    查看电脑配置命令 2008年06月16日 星期一 13 59 打开注册表 开始 运行 regedit 什么是注册表 注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘 不幸的是 微软并没有完全公开讲述关于注册表正确设置
  • Linux虚拟化网络之链路聚合实战

    一 bond链路聚合技术 网卡bond是通过多张网卡绑定为一个逻辑网卡 实现本地网卡的冗余 带宽扩容和负载均衡 在生产场景中是一种常用的技术 目前网卡绑定mode共有七种 0 6 bond0 bond1 bond2 bond3 bond4
  • Windows Apache Tomcat安装及环境变量配置(保姆级别安装配置教程有图)

    Apache Tomcat安装及环境变量配置 在安装tomcat之前 请检查电脑是否安装了jdk 如果未安装 请进行安装jdk安装教程 点击跳转 Apache Tomcat官方网站 点击直接下载64 bit Windows apache t
  • RPA应用于电力行业的优势:来自3大应用场景的解读

    作为国民经济发展的基础行业之一 电力行业在中国社会发展中有着非常重要的地位 近年来 国际能源业正在发生变化 垄断逐渐被打破 新的市场进入者不断涌现 更多新能源 如太阳能和风能等替代能源 逐渐成为潮流 消费者的选择余地也相应变大 为了保持市场
  • trex-bird使用过程解析

    trex bird原理 TRex Bird架构图 trex 结合bird服务是采用linux上的veth及网络命名空间的技术 bird运行在trex a bird ns 网络namespace里 创建veth虚接口对bird 0 0 T和b
  • 开源数据库OceanBase源码解读(九):tableAPI和OB多模型

    在刚刚发布的 OceanBase社区版 3 1 1 中 OceanBase 开放了一组新的 API 叫做 Table API hbase gt HBase 本文作为源码解读系列的第九篇 将介绍 Table API hbase gt HBas
  • Vue.js与后端交互:构建动态数据应用的完美指南

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 1
  • Linux工具技巧 —— Git的常见操作

    文章目录 什么是Git 初始化一个本地仓库 stage 文件 commit 文件 添加远程仓库 推送本地代码到远程仓库 拉取远程代码到本地 创建分支 切换分支 合并分支 查看状态 查看提交历史 回退版本 克隆远程仓库 什么是Git Git是
  • GitHub上标星75k+的《Java面试突击版》到底有多牛?看完内容我服了!

    前言 不论是校招还是社招都避免不了各种面试 笔试 如何去准备这些东西就显得格外重要 不论是笔试还是面试都是有章可循的 我这个有章可循 说的意思只是说应对技术面试是可以提前准备 运筹帷幄之后 决胜千里之外 不打毫无准备的仗 我觉得大家可以先从
  • 实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式

    实现二叉树的先序 中序 后序遍历 包括递归方式和非递归方式 public class BinaryTree public static class Node public int value public Node left public
  • 剑指 Offer 48. 最长不含重复字符的子字符串(java+python)

    请从字符串中找出一个最长的不包含重复字符的子字符串 计算该最长子字符串的长度 示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 bbbbb 输出 1 解释 因为无重复字符