Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,915 questions

51,848 answers

573 users

How to find the longest substring without repeating characters in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func longestSubstring(s string) string {
    start := 0
    maxLength := 0
    longestSubstr := ""
    charIndex := make(map[rune]int)

    for end, char := range s {
        // If the character is already in the map and within the current window
        if index, exists := charIndex[char]; exists && index >= start {
            start = index + 1
        }
        // Update the character's latest index
        charIndex[char] = end

        // Check if the current substring is the longest
        if currentLength := end - start + 1; currentLength > maxLength {
            maxLength = currentLength
            longestSubstr = s[start : end+1]
        }
    }

    return longestSubstr
}

func main() {
    // Test cases
    fmt.Println(longestSubstring("abcabcbb")) // Output: "abc"
    fmt.Println(longestSubstring("bbbbb"))    // Output: "b"
    fmt.Println(longestSubstring("xwwwqfwwxqwyq"))   // Output: "xqwy"
}



/*
run:

abc
b
xqwy

*/

 



answered Apr 6, 2025 by avibootz
edited Apr 7, 2025 by avibootz
...