领扣-无重复字符的最长子串-Python实现

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

示例 1:

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

示例 2:

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

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
s=‘pwwkew‘
max_number = 0
number = 0
test = ‘‘
for i in s:
    #如果i不在test字符串里面,字符串test添加这个字符,number+1
    if i not in test:
        test += i
        number += 1
        global s1
        s1=test
    else:  #i在test字符串里
        if number >= max_number:
            max_number = number
        index = test.index(i)
        test = test[(index+1):] + i
        number=len(test)
    if number > max_number:
        max_number = number
print(s1)
print(max_number)

原文地址:https://www.cnblogs.com/yuxuanlian/p/10180213.html

时间: 2024-11-05 23:25:58

领扣-无重复字符的最长子串-Python实现的相关文章

leetcode 无重复字符的最长子串 python实现

这道题需要借助哈希查找key的O(n) 时间复杂度, 否则就会超时 初始化一个 哈希表\字典  dic 头指针start 初始为0 当前指针 cur 初始为0 最大长度变量 l 初始为0 用cur变量从给定字符串str的开头开始 一位一位的向右查看字符,直到整个字符串遍历完, 对每一位字符进行如下: 当前位置的字符为 c = str[cur] 查询当前字符 c 是否 在哈希表dic的键 当中,表示 当前字符c 是否之前遍历到过    如果 当前字符还没出现过,就 在dic中记录一个键值对  (当

leetcode力扣刷题系列python——3、无重复字符的最长子串

题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1. 解法: 采用哈希表法:设定左右双指针l和r,遍历字符串:哈希表存储某字符s[i]最新在字符串中出现的位置index + 1,key, value

3. 无重复字符的最长子串 141. 环形链表 171. Excel表列序号 203. 移除链表元素

3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3.示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1.示例 3: 输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "

C语言字符串之无重复字符的最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为

计算无重复字符的最长子串

题目要求:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 包含测测试用例: 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 示例 3: 输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 &qu

【Leetcode】【Longest Substring Without Repeating Characters】【无重复字符的最长子串】【C++】

题目:给定一字符串,求其无重复字符的最长子串长度. 思路:for循环一次,时间复杂度为O(N).字符的ascii值为32~126.start表示当前无重复字符子串的初始位置,初始值为0:可定义一个位置数组pos[128]表示for循环索引到当前位置时相应的字符对应的位置.若当前字符s[i](其ascii值为cur_pos),若pos[cur_pos]>=start,说明在start之后已有该字符s[i],则以start开始的子串第一次遇到重复字符,打住.判断当前长度是否大于max_len,若大于

代码题(56)— 最长重复子串、无重复字符的最长子串

1.最长的重复子串 寻找一个字符串中最长的重复子串 最大后缀方法思路: 1. 用字符串指针数组保存用户输入的字符串的所有后缀字符串: 2. 将后缀字符串集合进行排序: 3. 比较相邻字符串的公共子串长度,找到长度最大值,保存相应字符串即为所求 空间复杂度:求长度为n的字符串的后缀,需要O(n)的空间复杂度  时间复杂度:产生后缀数组-时间复杂度O(N).对后缀数组排序是O(N*NlogN),第一个N表示字符串的比较,后面NlogN使用快排排序.依次检测相邻两个后缀的公共长度-时间复杂度O(N*N

[LeetCode]无重复字符的最长子串

给定一个字符串,找出不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3. 示例 2: 输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b",其长度为 1. 示例 3: 输入: "pwwkew" 输出: 3 解释: 无重复字符的最长子串是 "wke",其长度为 3.   请注

[Swift]LeetCode3. 无重复字符的最长子串 | Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with the length of 1.