day six
This commit is contained in:
32
daysix.go
Normal file
32
daysix.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
func areUnique(inputs [4]byte) bool {
|
||||||
|
switch {
|
||||||
|
case inputs[0] == inputs[1]:
|
||||||
|
case inputs[0] == inputs[2]:
|
||||||
|
case inputs[0] == inputs[3]:
|
||||||
|
case inputs[1] == inputs[2]:
|
||||||
|
case inputs[1] == inputs[3]:
|
||||||
|
case inputs[2] == inputs[3]:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func daySix(input string) (marker int) {
|
||||||
|
var a, b, c, d byte
|
||||||
|
marker = 4
|
||||||
|
|
||||||
|
for i := 3; i < len(input); i++ {
|
||||||
|
a, b, c, d = input[i-3], input[i-2], input[i-1], input[i]
|
||||||
|
|
||||||
|
if areUnique([4]byte{a, b, c, d}) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
marker++
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1
|
||||||
|
}
|
||||||
8
main.go
8
main.go
@@ -102,4 +102,12 @@ func main() {
|
|||||||
for _, r := range dayFiveResult {
|
for _, r := range dayFiveResult {
|
||||||
fmt.Printf("%c ", r)
|
fmt.Printf("%c ", r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** DAY SIX */
|
||||||
|
fmt.Println("\nDAY SIX")
|
||||||
|
fmt.Println(daySix("bvwbjplbgvbhsrlpgdmjqwftvncz"))
|
||||||
|
fmt.Println(daySix("nppdvjthqldpwncqszvftbrmjlhg"))
|
||||||
|
fmt.Println(daySix("nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg"))
|
||||||
|
fmt.Println(daySix("zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw"))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user