题目

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

DEMO

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


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


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

解法

双指针法

将整个字符串分解成各个字母对应的位图

abcabcbb分解为

  • a:10010000
  • b:01001011
  • c:00100100

采取双指针,首指针依次从首位向右移动,次指针跟随首指针,且最多比其向右偏移字母个数的偏移量。当任意一个字母的1在指针间出现两次则记录指针偏移差,并右移首指针后重复次指针的操作。

1
def
相关文章
评论
分享
  • findMedianSortedArrays

    题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 DEMO ...

    findMedianSortedArrays
  • addTwoNumbers

    题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 ...

    addTwoNumbers