当前位置: 首页 > news >正文

面试题 08.14. 布尔运算

链接:. - 力扣(LeetCode)

题解:dp[i][j][0/1] 表示,从下标i到下标j之间,满足0/1的情况是多少

class Solution {
public:int countEval(string s, int result) {int size = s.size();if (size <= 0) {return 0;}//std::vector<int> tmp(2, 0);//std::vector<std::vector<int>> tmp2(size, tmp);//std::vector<std::vector<std::vector<int>>> dp(size, tmp2);vector<vector<vector<int>>> dp(size, vector<vector<int>>(size, vector<int>(2, 0)));for (int i = 0; i < size; i += 2) {dp[i][i][s[i]-'0'] = 1;//dp[i][i][0] = (s[i] - '0' == 0) ? 1 : 0;//dp[i][i][1] = (s[i] - '0' == 1) ? 1 : 0;}for (int len = 3; len <= size; len += 2) {for (int i = 0; i + len - 1 < size; i += 2) {int j = i + len - 1;for (int k = i + 1; k <= j-1; k += 2) {cout << s[k] << endl;if (s[k] == '&') {dp[i][j][0] += dp[i][k-1][0] * dp[k+1][j][0] + dp[i][k-1][0] * dp[k+1][j][1] + dp[i][k-1][1] * dp[k+1][j][0];dp[i][j][1] += dp[i][k-1][1] * dp[k+1][j][1];} else if (s[k] == '|') {dp[i][j][1] += dp[i][k-1][1] * dp[k+1][j][0] + dp[i][k-1][0] * dp[k+1][j][1] + dp[i][k-1][1] * dp[k+1][j][1];dp[i][j][0] += dp[i][k-1][0] * dp[k+1][j][0];} else {dp[i][j][0] += dp[i][k-1][1] * dp[k+1][j][1] + dp[i][k-1][0] * dp[k+1][j][0];dp[i][j][1] += dp[i][k-1][0] * dp[k+1][j][1] + dp[i][k-1][1] * dp[k+1][j][0];                   }}}}return dp[0][size-1][result];}
};

相关文章:

  • DOM 加载函数
  • 【C++】平衡二叉树(AVL树)的实现
  • 状态压缩DP——AcWing 291. 蒙德里安的梦想
  • 【国际化I18n使用方法】vue2使用i18简单实现多语种切换,刷新保持,动态数据处理
  • 有哪些重大影响的算法?
  • 如何修复“AI的原罪”
  • 甘肃旅游服务平台的设计
  • 【网络安全学习】漏洞扫描:-04- ZAP漏洞扫描工具
  • Harbor本地仓库搭建003_Harbor常见错误解决_以及各功能使用介绍_镜像推送和拉取---分布式云原生部署架构搭建003
  • 第7章:系统架构设计基础知识-软件架构风格
  • 02 Shell编程之条件语句
  • 【第26章】Vue实战篇之用户信息修改
  • C++(26): 原子操作(std::atomic)
  • 诺瓦星云入职认知能力SHL测验Verify职业性格问卷OPQ可搜索带解析求职题库
  • Java练习题4
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • EOS是什么
  • HTTP中的ETag在移动客户端的应用
  • javascript面向对象之创建对象
  • js数组之filter
  • Quartz初级教程
  • React-flux杂记
  • spring学习第二天
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 对象管理器(defineProperty)学习笔记
  • 关于springcloud Gateway中的限流
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端之React实战:创建跨平台的项目架构
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 小试R空间处理新库sf
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # .NET Framework中使用命名管道进行进程间通信
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (9)STL算法之逆转旋转
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (初研) Sentence-embedding fine-tune notebook
  • (二十四)Flask之flask-session组件
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)重识new
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .md即markdown文件的基本常用编写语法
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Framework 3.5安装教程
  • .Net MVC + EF搭建学生管理系统
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET分布式缓存Memcached从入门到实战
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @vueup/vue-quill使用quill-better-table报moduleClass is not a constructor
  • [AIGC] Java 和 Kotlin 的区别