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

网站后台的形成网站数据分析

网站后台的形成,网站数据分析,网上接做网站的单子,做网站 要学 什么语言LeetCode 热题100 | 3. 无重复字符的最长子串 大家好,今天我们来解决一道经典的算法题——无重复字符的最长子串。这道题在 LeetCode 上被标记为中等难度,要求我们找出一个字符串中不含有重复字符的最长子串的长度。下面我将详细讲解解题思路&#xff0…

LeetCode 热题100 | 3. 无重复字符的最长子串

大家好,今天我们来解决一道经典的算法题——无重复字符的最长子串。这道题在 LeetCode 上被标记为中等难度,要求我们找出一个字符串中不含有重复字符的最长子串的长度。下面我将详细讲解解题思路,并附上 Python 代码实现。


题目描述

给定一个字符串 s,请你找出其中不含有重复字符的 最长子串 的长度。

示例:

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

解题思路

这道题的核心是找到一个不包含重复字符的子串,并返回其最大长度。我们可以使用 滑动窗口 来解决这个问题。

核心思想

  1. 滑动窗口

    • 使用两个指针 leftright 表示当前子串的左右边界。
    • 使用一个哈希集合 char_set 来记录当前子串中的字符。
  2. 窗口扩展

    • 移动 right 指针,将字符加入 char_set
    • 如果字符已经存在于 char_set 中,则移动 left 指针,直到 char_set 中不再有重复字符。
  3. 更新最大长度

    • 每次扩展窗口后,更新最大子串长度。

代码实现

def lengthOfLongestSubstring(s):""":type s: str:rtype: int"""char_set = set()  # 用于记录当前子串中的字符left = 0  # 滑动窗口的左边界max_length = 0  # 最大子串长度for right in range(len(s)):# 如果当前字符已经存在于集合中,移动左指针while s[right] in char_set:char_set.remove(s[left])left += 1# 将当前字符加入集合char_set.add(s[right])# 更新最大长度max_length = max(max_length, right - left + 1)return max_length

代码解析

  1. 初始化

    • char_set 用于记录当前子串中的字符。
    • left 是滑动窗口的左边界,初始为 0。
    • max_length 是最大子串长度,初始为 0。
  2. 滑动窗口扩展

    • 遍历字符串,移动 right 指针。
    • 如果当前字符 s[right] 已经存在于 char_set 中,则移动 left 指针,并从 char_set 中移除 s[left],直到 char_set 中不再有重复字符。
  3. 更新最大长度

    • 将当前字符 s[right] 加入 char_set
    • 更新 max_length 为当前窗口长度 right - left + 1max_length 的较大值。
  4. 返回结果

    • 返回 max_length

复杂度分析

  • 时间复杂度:O(n),其中 n 是字符串的长度。每个字符最多被访问两次(leftright 各一次)。
  • 空间复杂度:O(min(m, n)),其中 m 是字符集的大小(ASCII 字符集为 128),n 是字符串的长度。char_set 的大小最多为字符集的大小。

示例运行

示例 1

# 输入: s = "abcabcbb"
s = "abcabcbb"
print(lengthOfLongestSubstring(s))  # 输出: 3

解释

  • 最长无重复字符的子串是 "abc",长度为 3。

示例 2

# 输入: s = "bbbbb"
s = "bbbbb"
print(lengthOfLongestSubstring(s))  # 输出: 1

解释

  • 最长无重复字符的子串是 "b",长度为 1。

示例 3

# 输入: s = "pwwkew"
s = "pwwkew"
print(lengthOfLongestSubstring(s))  # 输出: 3

解释

  • 最长无重复字符的子串是 "wke",长度为 3。

总结

通过滑动窗口法,我们可以高效地找到无重复字符的最长子串。这种方法的时间复杂度为 O(n),空间复杂度为 O(min(m, n)),能够处理较大的输入规模。希望这篇题解对你有帮助!如果还有其他问题,欢迎继续提问!

关注我,获取更多算法题解和编程技巧!

http://www.dtcms.com/wzjs/437891.html

相关文章:

  • 做网站建优化设计答案大全
  • office365做企业网站昆山网站建设推广
  • 麻涌镇做网站广东今天新闻最新消息
  • 深圳网站建设服务比较便宜百度广告竞价排名
  • 代做备案网站seo常用工具有哪些
  • 酷站百分百东莞seo项目优化方法
  • 快站wordpress百度seo排名优化公司哪家强
  • 油气集输毕业设计代做网站网络服务提供者不履行法律行政法规规定
  • 新郑市网站建设张雷明履新河南省委常委
  • 一个网站域名一年要多少钱为什么不能去外包公司
  • 推广公司服务内容宁波seo推广优化公司
  • 盱眙网站建设公司google首页
  • 套模版做网站磐石网站seo
  • 网页设计公司名称百度seo关键词优化电话
  • 北京做网站的公司哪家好seo网上培训多少钱
  • 具有品牌的广州做网站四川seo
  • 做网站分类链接网站页面的优化
  • 传统门户网站有哪些广州优化防控措施
  • 炫酷的个人网站百家号关键词seo优化
  • 葡萄城网站建设网站快速优化排名软件
  • 怎么用iapp做网站软件沈阳网站关键词优化公司
  • 广州网站设计公司招聘泉州百度竞价公司
  • 宁波网站开发制作网站seo外包靠谱吗
  • 网站联盟广告名词解释网站链接推广工具
  • 网站后台密码文件厦门seo培训学校
  • 制作网站公司首 荐乐云seo专家有哪些免费推广网站
  • 加急网站备案万网域名注册教程
  • 企业品牌推广网站国外十大免费服务器和域名
  • 重新建设网站的申请报告网络营销策划书
  • WordPress360收录网站关键词优化排名外包