题解 | #配置文件恢复#
配置文件恢复
http://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
input := bufio.NewScanner(os.Stdin)
for input.Scan() {
s := input.Text()
solution(s)
}
}
func solution(s string) {
bs := strings.Split(s, " ")
if len(bs) == 1 {
if strings.HasPrefix("reset", bs[0]) {
fmt.Println("reset what")
} else {
fmt.Println("unknown command")
}
} else {
switch {
case strings.HasPrefix("reset", bs[0]) || strings.HasPrefix("reboot", bs[0]):
if strings.HasPrefix("reset", bs[0]) && !strings.HasPrefix("reboot", bs[0]) {
if strings.HasPrefix("board", bs[1]) {
fmt.Println("board fault")
} else {
fmt.Println("unknown command")
}
} else if !strings.HasPrefix("reset", bs[0]) && strings.HasPrefix("reboot", bs[0]) {
if strings.HasPrefix("backplane", bs[1]) {
fmt.Println("impossible")
} else {
fmt.Println("unknown command")
}
} else {
if strings.HasPrefix("board", bs[1]) && strings.HasPrefix("backplane", bs[1]) {
fmt.Println("unknown command")
} else if strings.HasPrefix("board", bs[1]) {
fmt.Println("board fault")
} else {
fmt.Println("impossible")
}
}
case strings.HasPrefix("board", bs[0]) || strings.HasPrefix("backplane", bs[0]):
if strings.HasPrefix("board", bs[0]) && !strings.HasPrefix("backplane", bs[0]) {
if strings.HasPrefix("add", bs[1]) && strings.HasPrefix("delete", bs[1]) {
fmt.Println("unknown command")
} else if strings.HasPrefix("add", bs[1]) {
fmt.Println("where to add")
} else if strings.HasPrefix("delete", bs[1]) {
fmt.Println("no board at all")
} else {
fmt.Println("unknown command")
}
} else if !strings.HasPrefix("board", bs[0]) && strings.HasPrefix("backplane", bs[0]) {
if strings.HasPrefix("abort", bs[1]) {
fmt.Println("install first")
} else {
fmt.Println("unknown command")
}
} else {
if strings.HasPrefix("add", bs[1]) && strings.HasPrefix("delete", bs[1]) ||
(strings.HasPrefix("add", bs[1]) && strings.HasPrefix("abort", bs[1])) ||
(strings.HasPrefix("abort", bs[1]) && strings.HasPrefix("delete", bs[1])) {
fmt.Println("unknown command")
} else if strings.HasPrefix("add", bs[1]) {
fmt.Println("where to add")
} else if strings.HasPrefix("delete", bs[1]){
fmt.Println("no board at all")
} else if strings.HasPrefix("abort", bs[1]) {
fmt.Println("install first")
} else {
fmt.Println("impossible")
}
}
default: fmt.Println("unknown command")
}
}
}
查看10道真题和解析
海康威视公司福利 1125人发布