回傳字串中最長不重複字元子字串的長度。
題目
Longest Substring Without Repeating Characters Medium
Given a string s, find the length of the longest substring without repeating characters.
我的解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); if (n < 2) { return n; } int l = 0, r = l + 1, count = 1, res = 1; while (l < r && r < n) { String subS = s.substring(l, r); if (!subS.contains("" + s.charAt(r))) { count++; } else { l += subS.indexOf(s.charAt(r)) + 1; count -= subS.indexOf(s.charAt(r)); } res = count > res ? count : res; r++; } return res; } }
|
寫到邏輯混亂,很多條件我自己都不清楚為什麼,尤其是移動邊界跟扣除計數的加一減一很不好想,我是重複嘗試才試出結果。