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


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

示例:

给定"abcabcbb",没有重复字符的最长子串是"abc",那么长度就是3。

给定"bbbbb",最长的子串就是"b",长度是1。

给定"pwwkew",最长子串是"wke",长度是3。请注意答案必须是一个子串,"pwke"子序列而不是子串。

        String s = "abcbc";
        int freq[] = new int[256];//最长没重复字符串最大长度 256 ,0 表示没有,1表示有
        int l = 0 , r = -1;
        int len = 0 ;
        while(l < s.length()) {
            if(r + 1 < s.length() && freq[s.charAt(r + 1)] == 0 ) {
                freq[s.charAt(++r)] = 1;
                len = Math.max(len, r - l + 1); // 记录连续最大长度
            } else {
                freq[s.charAt(l++)] = 0;
            }
        }
        System.out.println(len);

优质内容筛选与推荐>>
1、LA 3989 - Ladies' Choice 稳定婚姻问题
2、Git安装和简单使用
3、A题笔记(13)
4、JS对象与包装类
5、洛谷[P4889] KLS与FLAG


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号