题解 | #最长不含重复字符的子字符串#

最长不含重复字符的子字符串

https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7

通过全测试用例

思路:

设置当前最长不重复子串的长mx_len,初始化为0;

for循环遍历字符串s,

如果从当前下标开始到前mx_len个字符构成的新子串s[i - mx_len : i + 1]是不重复的子串,则mx_len + 1.

其中不重复子串的判断是用子串长和其转化成set集合后的长度对比:len(str_nw) == len(set(str_nw))

最后,mx_len输出即可

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return int整型
#
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        # write code here
        if len(s) == 1:
            return 1
        else:
            mx_len = 0
            for i in range(len(s)):
                str_nw = s[i - mx_len : i + 1]
                if len(str_nw) == len(set(str_nw)):
                    mx_len += 1

            return mx_len

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务