斷簽...
今天的題目大意是:題目: 給定一個字串,找出最長不重複字元的子字串長度
範例:
"abcabcbb" → 3 (答案是 "abc")
"bbbbb" → 1 (答案是 "b")
"pwwkew" → 3 (答案是 "wke")
class Solution {
public int lengthOfLongestSubstring(String s) {
// HashMap 記錄字元最後出現的索引
HashMap<Character, Integer> charMap = new HashMap<>();
int left = 0;
int maxLen = 0;
for (int right = 0; right < s.length(); right++) {
char currentChar = s.charAt(right);
// 如果字元已在窗口中,移動 left 指標
if (charMap.containsKey(currentChar) && charMap.get(currentChar) >= left) {
left = charMap.get(currentChar) + 1;
}
// 更新字元最新位置
charMap.put(currentChar, right);
// 更新最大長度
maxLen = Math.max(maxLen, right - left + 1);
}
return maxLen;
}
}