首先弄清楚Substring和Subsequence,前者是子串,要求连续,后者是子序列,可以不连续 public int lengthOfLongestSubstring(String s) { /* 一开始自己想的方法:两个指针,一个作为开始,一个用来遍历,复杂度O(N) */ int l = s.length(); if (l==0) return 0; char[] str = s.toCharArray(); int res = 1; Set<Character> set = new…