zoukankan      html  css  js  c++  java
  • [leetcode]3. Longest Substring Without Repeating Characters无重复字母的最长子串

    Given a string, find the length of the longest substring without repeating characters.

    Examples:

    Given "abcabcbb", the answer is "abc", which the length is 3.

    Given "bbbbb", the answer is "b", with the length of 1.

    Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequenceand not a substring.

    题意:

    给定一个字符串, 求其中无重复字母的最长子串

    Solution1:

    maintain a sliding window [start...i], making sure that each char in such window, its frequency is 1 (without Repeating chars)

    when one char's frequency > 1, there is repeating char, then move pointer start to find the next window

    code:

     1 /* 
     2    Time Complexity: O(n)
     3    Space Complexity: O(256)
     4 */
     5 class Solution {
     6     public int lengthOfLongestSubstring(String s) {
     7         // corner case 
     8         if( s == null || s.length() == 0) return 0;
     9         
    10         int[] map = new int[256];
    11         int result = 0;
    12         int start = 0;
    13         for(int i = 0; i < s.length(); i++){
    14             map[s.charAt(i)] ++;
    15             if(map[s.charAt(i)] > 1){
    16                 while(map[s.charAt(i)] > 1){
    17                     map[s.charAt(start)]--;
    18                     start++;
    19                 }
    20             } 
    21            result = Math.max(result, i - start + 1);   
    22         }
    23         return result;
    24     }
    25 }
  • 相关阅读:
    python 八进制数
    python hmac加盐
    python contextlib
    python hashlib
    python struct
    python namedtuple
    python datetime timezone 时区转化
    Android核心基础(手机卫士的一个知识点总结)
    TabHost结合RadioButton实现主页的导航效果
    Android SDK更新失败最新解决方案
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9201944.html
Copyright © 2011-2022 走看看