How do I implement the longest substring without repeating characters in Swift?

To implement the longest substring without repeating characters in Swift, you can use a sliding window approach with a dictionary to track the last indices of characters. Below is a code example demonstrating this approach:

func lengthOfLongestSubstring(_ s: String) -> Int { var charIndexMap: [Character: Int] = [:] var start = 0 var maxLength = 0 for (index, char) in s.enumerated() { if let lastIndex = charIndexMap[char], lastIndex >= start { start = lastIndex + 1 } charIndexMap[char] = index maxLength = max(maxLength, index - start + 1) } return maxLength } // Example usage: let result = lengthOfLongestSubstring("abcabcbb") // Output: 3 print(result) // Outputs: 3

longest substring substring without repeating characters Swift programming