关注
第一题:做了一个状态机,100%,代码一般,大佬轻喷,第三题用的dfs,只过了80%,就不贴了
思路是状态变化,start就是开始状态(后面可以接NOT或者命令),cmd状态是命令状态,可以接AND或者OR,NOT是NOT符号,只可以接命令。另外is_bigger就是判断命令是不是大写,大写的话也不符合要求。最后一条命令也要处理下,必须是一个命令,不能是NOT AND 或者OR就行。
import sys
def is_bigger(cmd):
if cmd >= 'A39; 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
相关推荐
点赞 评论 收藏
转发
点赞 评论 收藏
转发
今天 17:13
中南大学 计算机类 点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
348609次浏览 7240人参与
# 你更愿意参加线上面试还是线下面试? #
4595次浏览 73人参与
# 晒一晒我的offer #
2761179次浏览 49459人参与
# 如何确定求职岗位 #
100744次浏览 2391人参与
# 华为求职进展汇总 #
432814次浏览 4348人参与
# 机械人怎么评价今年的华为 #
49102次浏览 401人参与
# 非技术岗薪资爆料 #
4690次浏览 104人参与
# 第一次面试 #
13647次浏览 209人参与
# 如果再来一次,你还会学硬件吗 #
16716次浏览 330人参与
# 海信求职进展汇总 #
6770次浏览 91人参与
# 通信硬件薪资爆料 #
136733次浏览 971人参与
# 来聊聊机械薪资天花板是哪家 #
17998次浏览 138人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
22008次浏览 211人参与
# 除了offer,现在你还缺点啥? #
2004次浏览 44人参与
# 应届生应该先就业还是先择业 #
10638次浏览 103人参与
# 通信硬件人笔面经互助 #
62954次浏览 1402人参与
# 百度工作体验 #
18954次浏览 205人参与
# 讲讲我经历过的年终奖 #
5794次浏览 76人参与
# 租房前辈的忠告 #
19713次浏览 1576人参与
# 软件开发薪资爆料 #
534536次浏览 9205人参与