zoukankan      html  css  js  c++  java
  • 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 subsequence and not a substring.

    public class Solution {
        public int lengthOfLongestSubstring(String s) {
            int dp[] = new int[128]; //indicated the latest appearance of 128 ASCII letter
            int start = 0; //start position of current traverse
            int maxLength = 0;
            int curLength = 0;
            for(int i = 0; i < dp.length; i++){ //不能使用int i:a, 因为遍历的i会被改变值
                dp[i] = -1; //initialized as -1
            }
            
            for(int i = 0; i < s.length(); i++){
                if(dp[s.charAt(i)] < start) { //haven't repeated in the current traverse
                    dp[s.charAt(i)]=i;
                }
                else{ //repeat occurs
                    if(i-start > maxLength){
                        maxLength = i-start;
                    }
                    //reset
                    start = dp[s.charAt(i)]+1;
                    dp[s.charAt(i)] = i;
                }
            }
            
            if(s.length()-start > maxLength){ //final traverse substring
                maxLength = s.length()-start;
            }
            return maxLength;
        }
    }
  • 相关阅读:
    codechef May Challenge 2016 CHSC: Che and ig Soccer dfs处理
    codechef May Challenge 2016 FORESTGA: Forest Gathering 二分
    codechef May Challenge 2016 LADDU: Ladd 模拟
    tp5 whereOr
    Null
    验证消息是否来自微信
    layer使用注意事项
    laravel 查询
    laravel form表单提交
    ajax上传文件
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/5452968.html
Copyright © 2011-2022 走看看