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;
        }
    }
  • 相关阅读:
    中间人攻击
    RSA算法详解
    Scala的自定义类型标记
    新版gitbook导出pdf
    request中跟路径有关的api的分析
    struts2初始化探索(一)
    struts2入门教学
    区块链学习笔记(五)
    区块链学习笔记(四)
    区块链学习笔记(三)
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/5452968.html
Copyright © 2011-2022 走看看