Longest Substring Without Repeating Characters

charTables数组记录字符对应的位置。
public class Solution { public int lengthOfLongestSubstring(String s) { if(null==s||0==s.length()) return 0; int charTables[]=new int[256]; //下标是哪个字符,内容是位置 Arrays.fill(charTables, -1); int start=0; int end=1; int max=1; charTables[s.charAt(0)]=0; while(end<s.length()) { if(charTables[s.charAt(end)]>=start) //发现存在重复情况 start=charTables[s.charAt(end)]+1; //那元素的位置后面 max=Math.max(max, end-start+1); //重新开始计算 charTables[s.charAt(end)]=end; end++; } return max; } }

  

posted on 2014-04-18 10:43  wf110  阅读(229)  评论(0编辑  收藏  举报