iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
生成式 AI

Chatting with ChatGPT——一天學習一題Leetcode系列 第 25

3. Longest Substring Without Repeating Characters

  • 分享至 

  • xImage
  •  

斷簽...

今天的題目大意是:題目: 給定一個字串,找出最長不重複字元的子字串長度
範例:
"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;
    }
}

上一篇
LeetCode 21. Merge Two Sorted Lists(合併兩個有序鏈表)
系列文
Chatting with ChatGPT——一天學習一題Leetcode25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言