Longest Substring Without Repeating Characters

来源:互联网 发布:百度云老是网络异常 编辑:程序博客网 时间:2024/06/10 05:46

暴力解法,在一个巨长无比的输入下超时了。

所以,只能用线性时间的解法。

Java 解:

public class Solution {public int lengthOfLongestSubstring(String s) {    if(s.length()==0){        return 0;    }int curlength = 1;int max = curlength;boolean[] charTable = new boolean[256];Arrays.fill(charTable, false);int start = 0;int end = 1;charTable[s.charAt(start)] = true;while(end < s.length()){//System.out.println(end+ " "+ (int)s.charAt(end));if(charTable[s.charAt(end)] == false){charTable[s.charAt(end)] = true;end ++;if(end - start > max){max = end - start;}}else{while(charTable[s.charAt(end)] == true){charTable[s.charAt(start)]  = false;start++;}charTable[s.charAt(end)] = true;end++;if(end - start > max){max = end - start;}}}return max;}}


0 0