class Solution {
public int lengthOfLongestSubstring(String s) {
int res =0;
//第一次開始周遊
for(int i =0; i<s.length();i++){
//建立一個HashSet集合 無序,不能存放重複值
Set<Character> set = new HashSet<>();
//第二次周遊開始
for(int j = i ; j < s.length() ; j++){
//contains(Object o)判斷集合集合中是否有指定元素
//charAt() 傳回指定索引出char值
if( set.contains(s.charAt(j))) break;
//兩數對比取出最大值
res = Math.max(res,j-i+1);(res定義在循環外,是以它一直取的是最大值)
set.add(s.charAt(j));
}
}
return res;
}
}
第一次周遊開始,從字元串S中的第一個字元開始判斷,是否在set集合中有重複值
沒有,就把字元加到set集合中,res對比子字元串長度并取出最大值。
有,就跳出次循環,從字元串s的第二個字元開始判斷重複以上操作;