美文网首页
【median】最长无重复子字符串

【median】最长无重复子字符串

作者: dearjj | 来源:发表于2019-06-02 18:19 被阅读0次

    输入一个字符串 :

    “pwwkew”
    

    输出:

    3
    //“wke”
    

    solution

    class Solution {
        public int lengthOfLongestSubstring(String s) {
        int sub = 0;
        int before = 0;
        for (int i = 0 ; i < s.length() ; ++i) { 
            int tempIndex = this.indexOf(s, i-before, i, s.charAt(i));
            if (tempIndex == -1) {
                ++before;
            } else {
                before = i - tempIndex;
            }
            if (before > sub) {
                sub = before;
            }
        }
        return sub;
        }
        
        public int indexOf(String s, int begin, int end, int ch) {
        for (int i = begin; i < end ; ++i) {
            if (s.charAt(i) == ch) {
                return i;
            }
        }
        return -1;
    }
    }
    

    explain:

    before是累计找到的不同字符数, 若一直没找到, 则一直累加
    indexof 方法从当前位置往前before开始, 找相同的字符
    如果找到, 则舍弃找到的位置之前的所有字符,继续查重
    每次迭代结尾,在sub中保存目前最长的无重复子字符串

    相关文章

      网友评论

          本文标题:【median】最长无重复子字符串

          本文链接:https://www.haomeiwen.com/subject/kdzxxctx.html