LeetCode每日一题:longest substring w

2017-07-06  本文已影响33人  yoshino

问题描述

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.

问题分析

一般查找是否重复最简便的方法就是hashMap,这道题只要求我们返回长度大小,我们可以采用滑动窗口的方式来进行。

代码实现

public int lengthOfLongestSubstring(String s) {
        if (s.length() == 0) return 0;
        HashMap<Character, Integer> hashMap = new HashMap<>();
        int leftBound = 0;
        int max = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            int isSame = 0;
            if (hashMap.containsKey(c)) isSame = hashMap.get(c) + 1;
            leftBound = Math.max(leftBound, isSame);
            max = Math.max(max, i - leftBound + 1);
            hashMap.put(c, i);
        }
        return max;
    }
上一篇 下一篇

猜你喜欢

热点阅读