• # en Go

    Posté par . En réponse au message Avent du Code, jour 6. Évalué à 2.

    Je suis à la bourre, j'ai pris du retard sur le n°5. J'ai trouvé celui ci plus facile, solution en Go (fonction principale) :

    func startOfPacket(line string, msgLen int) int {
     l := len(line)
     if l <= msgLen {
     return -1
     }
    mainloop:
     for i := msgLen - 1; i < l; i++ {
     message := line[i-msgLen+1 : i+1]
     chars := make(map[rune]int, msgLen)
     for _, r := range message {
     chars[r]++
     if chars[r] == 2 {
     continue mainloop
     }
     }
     return i + 1
     }
     return -1
    }