Leetcode 3. 无重复字符的最长子串

心路历程:

字符串中的重复字串问题,第一反应就是双指针or暴力搜索。实际上这两种做法也都可以。

注意的点:

1、注意字串的长度要在索引差的基础上+1

2、双指针的时候注意保证fast > slow

3、暴力搜索需要剪枝,当以si开头的字串有重复元素时,后面的不需要遍历了(break退出第一层循环)

解法:

暴力+剪枝解法:

python 复制代码
        # 暴力+剪枝
        n = len(s)
        max_len = 1
        if not s:
            return 0
        for i in range(n):
            for j in range(i+1, n):
                if j-i + 1 == len(list(set(s[i:j+1]))):
                    max_len = max(max_len, j-i+1)
                else:
                    break
        return max_len

双指针解法:

python 复制代码
        # 双指针做法
        n = len(s)
        slow, fast = 0, 1
        if n <= 1:
            return n

        max_l = 1
        while fast < n:
            if len(set(s[slow:fast+1])) == fast - slow + 1:
                max_l = max(max_l, fast-slow+1)
                fast += 1
            else: 
                slow += 1
        return max_l
相关推荐
智者知已应修善业4 分钟前
【51单片机使用IO组赋值方法实现无源蜂鸣器响时LED12亮不响时34亮】2024-3-7
c++·经验分享·笔记·算法·51单片机
珊瑚里的鱼14 分钟前
【动态规划】按摩师
算法·动态规划
Fms_Sa15 分钟前
贪心算法-背包问题
算法·贪心算法·c#
大雨淅淅21 分钟前
【机器人】ROS2 机械臂控制(MoveIt2)从入门到实战
人工智能·python·神经网络·学习·算法·机器学习·机器人
智者知已应修善业1 小时前
【51单片机0.1秒计时到21.0时点亮LED】2024-1-5
c++·经验分享·笔记·算法·51单片机
apcipot_rain1 小时前
计科八股20260606——二叉树、PCA、图深度学习、进程上下文、C语言预编译、文件读写、单精度浮点数
c语言·数据结构·算法·pca·图神经网络
scx_link1 小时前
逻辑回归的总结
算法·机器学习·逻辑回归
沐籽李1 小时前
Proteina-Complexa:NVIDIA 如何把蛋白 Binder 设计推进到全原子生成时代?
大数据·人工智能·算法·英伟达·蛋白质生成
落羽的落羽1 小时前
【项目】JsonRpc框架——开发实现2(业务层)
linux·数据结构·c++·人工智能·算法·json·动态规划
h_a_o777oah1 小时前
2026 蓝桥杯软件 C++B组 国赛比赛经历及备赛建议
c++·经验分享·算法·蓝桥杯