题解 | #配置文件恢复#

配置文件恢复

https://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5

package main

//建立一个map叫做command依次存放所有存在的命令组合,
//如果这个key存在 则重置为unknow 例"b a"第一次存放时command["b a"]="where to add"
//第二次在“backplane abort”也会存在"b a"命令,此时将command["b a"]="unknown command"
//读取屏幕输入以回车结束
import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	command := make(map[string]string)
	un := "unknown command"
	initMap("reset", "", "reset what", un, command)
	initMap("reset", "board", "board fault", un, command)
	initMap("board", "add", "where to add", un, command)
	initMap("board", "delete", "no board at all", un, command)
	initMap("reboot", "backplane", "impossible", un, command)
	initMap("backplane", "abort", "install first", un, command)

	sc := bufio.NewScanner(os.Stdin)
	for sc.Scan() {
		cmd := sc.Text()
        //判断cmd命令是否存在于map
		todo, ok := command[cmd]
		if ok {
			fmt.Println(todo)
		} else {
			fmt.Println(un)
		}
	}

}

func initMap(first string, second string, todo string, unknow string, comd map[string]string) {
	if len(second) == 0 {
		for i := 0; i < len(first); i++ {
			comd[first[:i+1]] = todo
		}
	} else {
		for i := 0; i < len(first); i++ {
			for j := 0; j < len(second); j++ {
				if _, ok := comd[first[:i+1]+" "+second[:j+1]]; !ok {
					comd[first[:i+1]+" "+second[:j+1]] = todo
				} else {
					comd[first[:i+1]+" "+second[:j+1]] = unknow
				}
			}
		}
	}
}


全部评论

相关推荐

烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
11-28 16:00
已编辑
武汉理工大学 Java
想干测开的tomca...:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务