stream
This commit is contained in:
parent
c5aea36afe
commit
e22fddcde7
68
09dec/main.go
Normal file
68
09dec/main.go
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
GROUP = iota
|
||||||
|
GARB
|
||||||
|
IGN
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
state int
|
||||||
|
group int
|
||||||
|
score int
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
state = GROUP
|
||||||
|
sc := bufio.NewScanner(os.Stdin)
|
||||||
|
sc.Split(bufio.ScanRunes)
|
||||||
|
for sc.Scan() {
|
||||||
|
parse(sc.Text())
|
||||||
|
}
|
||||||
|
fmt.Println("SCORE:", score)
|
||||||
|
}
|
||||||
|
|
||||||
|
func parse(c string) {
|
||||||
|
fmt.Println(c)
|
||||||
|
if state == IGN {
|
||||||
|
state = GARB
|
||||||
|
} else {
|
||||||
|
switch c {
|
||||||
|
case ",":
|
||||||
|
if state == GROUP {
|
||||||
|
fmt.Println("sep group")
|
||||||
|
//score += group
|
||||||
|
}
|
||||||
|
case "{":
|
||||||
|
if state == GROUP {
|
||||||
|
fmt.Println("start group")
|
||||||
|
group++
|
||||||
|
}
|
||||||
|
case "}":
|
||||||
|
if state == GROUP {
|
||||||
|
fmt.Println("end group")
|
||||||
|
score += group
|
||||||
|
group--
|
||||||
|
}
|
||||||
|
case "<":
|
||||||
|
if state == GROUP {
|
||||||
|
state = GARB
|
||||||
|
}
|
||||||
|
case ">":
|
||||||
|
if state == GARB {
|
||||||
|
state = GROUP
|
||||||
|
}
|
||||||
|
case "!":
|
||||||
|
if state == GARB {
|
||||||
|
state = IGN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println(state, group, score)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user