第一题:做了一个状态机,100%,代码一般,大佬轻喷,第三题用的dfs,只过了80%,就不贴了 思路是状态变化,start就是开始状态(后面可以接NOT或者命令),cmd状态是命令状态,可以接AND或者OR,NOT是NOT符号,只可以接命令。另外is_bigger就是判断命令是不是大写,大写的话也不符合要求。最后一条命令也要处理下,必须是一个命令,不能是NOT AND 或者OR就行。 import sys def is_bigger(cmd): if cmd >= &#39;A&#39; and cmd <="Z": return True else: return False def judge(lists): cmd_lists = ["AND","OR"] cmd_lists_NOT = ["AND","OR","NOT"] state = "start" for cmd in lists: if state == "start": if cmd == "NOT": state = "NOT" continue if cmd not in cmd_lists and not is_bigger(cmd): state = "CMD" continue print("0") return if state == "NOT": if cmd not in cmd_lists_NOT and not is_bigger(cmd): state = "CMD" continue print("0") return if state == "CMD": if cmd in cmd_lists: state = "start" continue print("0") return if state == "CMD": print("1") else: print("0")
点赞 2

相关推荐

头像
点赞 评论 收藏
转发
牛客网
牛客企业服务