LeetCode题解(1106):解析字符串表示的布尔表达式(Python)
发布日期:2021-06-29 19:58:23
浏览次数:3
分类:技术文章
本文共 1716 字,大约阅读时间需要 5 分钟。
题目:(困难)
标签:字符串、栈
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 76ms (69.74%) |
Ans 2 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 64ms (90.79%) |
Ans 3 (Python) |
解法一(栈):
class Solution: def parseBoolExpr(self, expression: str) -> bool: stack = [[]] i = 0 while i < len(expression): ch = expression[i] if ch == "!" or ch == "|" or ch == "&": stack.append([ch]) i += 1 elif ch == ")": now = stack.pop() if now[0] == "!": tmp = not now[1] elif now[0] == "&": tmp = all(now[1:]) else: tmp = any(now[1:]) stack[-1].append(tmp) elif ch == "t": stack[-1].append(True) elif ch == "f": stack[-1].append(False) i += 1 # print(stack) return stack[0][0]
解法二(将符号栈单独拆分):
class Solution: def parseBoolExpr(self, expression: str) -> bool: mark_sign = [] stack = [[]] for ch in expression: if ch == "!" or ch == "|" or ch == "&": mark_sign.append(ch) stack.append([]) elif ch == ")": mark = mark_sign.pop() now = stack.pop() if mark == "!": tmp = not now[0] elif mark == "&": tmp = all(now) else: tmp = any(now) stack[-1].append(tmp) elif ch == "t": stack[-1].append(True) elif ch == "f": stack[-1].append(False) return stack[0][0]
转载地址:https://dataartist.blog.csdn.net/article/details/108093411 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 20时33分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
报文数据的txt文件 转换成wireshark可以识别的k12文件
2019-04-30
vue 大致总结一
2019-04-30
python面试总结 python同源策略 跨域问题(一)
2019-04-30
django中HttpResponse render redirect 使用和区别
2019-04-30
MySQL数据库的详细安装步骤
2019-04-30
python 基础 爬虫音乐资源案例
2019-04-30
python基础爬虫 视频的下载
2019-04-30
python中把图片 或者 数据存储到本地 用csv方式储存
2019-04-30
python中csv格式转换为excle格式
2019-04-30
爬取图片下载保存 例子详解 代码与注释
2019-04-30
python 在安装第三方库时候 怎样使用国内镜像源 实现快速下载
2019-04-30
python 爬取龙岭迷窟视频 对于视频格式m3u8 下载多个ts文件 合并成MP4
2019-04-30
python 爬取百度地图api数据
2019-04-30
MySQL 数据库在dos命令下的基本操作
2019-04-30
MySQL 学习文档 和安装步骤
2019-04-30
在Scrapy中怎样把数据储存到Mysql 或者Redis中
2019-04-30
python 在爬虫中怎样把数据添加到excle样式中
2019-04-30
Scrapy框架介绍和简单创建使用
2019-04-30