Offer_3 无重复子串

对字符串模拟 - 对于字符串来说 - 使用left来记录不重复的最左位置,使用i 遍历s的中每个字符,利用max保存最大长度,判断i- left + 1是否大于当前max值。

特别的,要考虑到字符串为空或者字符串只有一个空格的情况。

 

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if (s.length() == 0 || s == null) {
            return 0;
        }
        int left = 0;
        char[] c = s.toCharArray();
        int max = 1;
        for (int i = 1; i < c.length; i++) {
            for (int j = left; j < i; j++) {
                if (c[i] == c[j]) {
                    left = j + 1;
                    break;
                }
            }
            max = max < (i - left + 1) ? (i - left + 1) : max;
        }
        return max;
    }
}

 

posted @   牵魂  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示