序言中的有效括号列表

2024-02-18

我正在尝试测试括号列表是否有效。我的代码:

checkbrackets([]).
checkbrackets(['('|T]):-
    T = [')'|List],
    checkbrackets(List).    
checkbrackets(['('|T]):-
    T = ['('|List],
    append(Rest,[')'],T),
    checkbrackets(Rest).

我的代码适用于['(', '(', ')', '(', '(', ')', ')', ')']
但它失败了['(', '(', ')', ')', '(', ')'].
我究竟做错了什么?是否可以在没有计数器等额外参数的情况下编写这样的测试?


your append(Rest, [')'], T)将解析直到end列表中的,但并没有说左括号最终会与最后一个右括号匹配,例如()()才不是。

话虽这么说,我认为你让事情变得过于复杂了。您可以在此处使用一次扫描,而不是获取各种子列表:您使用一个初始化的累加器0,累加器最终应以0并且永远不会小于零,所以:

checkbrackets(B) :-
    checkbrackets(B, 0).

checkbrackets([], 0).  %% ← at the end, zero
checkbrackets([')'|T], N) :-
    N > 0,   %% ← always greater than or equal to zero.
    N1 is N-1,
    checkbrackets(T, N1).
checkbrackets(['('|T], N) :-
    N1 is N+1,
    checkbrackets(T, N1).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序言中的有效括号列表 的相关文章

  • Java:如何实现3和?

    我正在研究 3 Sum 来自己实现它 并遇到了以下规则的实现 给定一个由 n 个整数组成的数组 S S 中是否存在满足 a b c 0 的元素 a b c 查找数组中所有总和为零的唯一三元组 注意 三元组 a b c 中的元素必须按非降序排
  • 如何按字段对列表进行排序

    美好的一天 4 你们大家 我有一个对象列表 我的对象喜欢 Product iPhone Category SmartPhone Product HP Category PC Product HTC Category SmartPhone 我
  • 从 python 中的缩进文本文件创建树/深度嵌套字典

    基本上 我想迭代一个文件并将每行的内容放入一个深层嵌套的字典中 其结构由每行开头的空格数量定义 本质上 目标是采取这样的事情 a b c d e 并将其变成这样的东西 a b c d e Or this apple colours red
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq
  • 在Python中创建N*N*N列表时出现问题

    我正在尝试创建一个 3 维 NNPython 中的 N 列表 如下所示 n 3 l 0 n n n 不幸的是 这似乎没有正确地 克隆 列表 正如我所想的那样 gt gt gt l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 省略号列表[...]并将列表连接到自身[重复]

    这个问题在这里已经有答案了 EDIT 我在最初的例子中很粗心 当我添加列表时不会发生该行为A本身 而是当我添加一个列表时含有 list A to A本身 请参阅下面更正的示例 我试图理解省略号如何列出 那些显示为 当你有一个列表引用本身时发
  • 正则表达式是否用于构建解析器?

    这只是出于好奇的一个问题 因为我最近需要越来越多地解析和使用正则表达式 似乎 对于我在搜索中遇到的有关某种解析的问题 有人总是最终说 当问一些与正则表达式相关的问题 正则表达式对此不好 请使用这样那样的解析器 因为我已经更好地理解了正则表达
  • 根据 Mathematica 中的另一个列表值拆分列表

    在 Mathematica 中我有一个点坐标列表 size 50 points Table RandomInteger 0 size RandomInteger 0 size i 1 n 以及这些点所属的聚类索引列表 clusterIndi
  • 使用 Linq 返回具有最大计数的列表

    使用 C 和 Linq 如何返回具有最大大小 计数的 List 我假设您有一个名为的列表集合lists并且您想要返回此集合中元素最多的列表 如果是这样 请尝试以下操作 var listWithLargestCount lists Order
  • csv格式是常规语法还是上下文无关语法?

    我目前正在编写一个 csv 解析器 csv 格式的定义由下式给出RFC4180 https www rfc editor org rfc rfc4180这是由 ABNF 定义的 所以csv的定义绝对是上下文无关语法 不过我想知道csv是否是
  • 我想将对象列表添加到 firestore 文档中,-flutter

    我想将对象列表添加到 firestore 文档 我定义了产品数据模型 我还有类别数据模型 我想将类别列表添加到 firestore 中的产品文档中 我将类别添加到临时列表 然后将值放入product categories 产品 类别 类别t
  • 如何在 Haskell 中向右或向左移动列表的 1 个元素?

    嗨 我一直在寻找答案 但找不到 假设我们有一个像这样的列表 1 10 4 5 3 我怎样才能将 5 向左移动 使这个列表变成 1 10 5 4 3 我尝试过了swapElementsAt通过找到该元素的索引 但它看起来非常不足 swapEl
  • 构建一个简单的解析器,能够使用 PyParse 解析不同的日期格式

    我正在构建一个简单的解析器 它接受如下查询 显示 fizi 从 2010 年 1 月 1 日到 2006 年 2 月 11 日的提交 到目前为止我有 class QueryParser object def parser self stmn
  • Python range() 和 zip() 对象类型

    我了解功能如何range and zip 可以在 for 循环中使用 然而我期望range 输出一个列表 很像seq在 Unix shell 中 如果我运行以下代码 a range 10 print a 输出是range 10 表明它不是一
  • python中的列表列表的集合

    我有一个列表列表 mat 1 2 3 4 5 6 1 2 3 7 8 9 4 5 6 我想转换成set即删除重复列表并从中创建一个新列表 其中仅包含unique lists 在上述情况下 所需的答案将是 1 2 3 4 5 6 7 8 9
  • 如何在 Java 中获得列表的反向列表视图?

    我想在列表上有一个反向列表视图 与List sublist提供列表上的子列表视图 是否有一些函数可以提供此功能 我不想复制该列表 也不想修改该列表 在这种情况下 如果我能在列表上至少获得一个反向迭代器就足够了 另外 我知道如何自己实现这一点
  • 使用 Javascript 解析文本

    我正在尝试使用 Javascript 来解析在文本框中输入的文本 这将结合各种用户生成的变量来创建随机活动 看看这个例子可能更有意义 一些示例输入可能是 Activity Home Out Home Read book for time C
  • 如何从Python列表中的字符串中删除双引号?

    我正在尝试在字典列表中获取一些数据 数据来自 csv 文件 因此都是字符串 文件中的键都有双引号 但由于这些都是字符串 我想删除它们 这样它们在字典中看起来像这样 key value 而不是这个 key value 我尝试简单地使用 str
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • 如何在 Prolog 中解决这个算术表达式难题?

    我有一个编程问题 https blog svpino com 2015 05 08 solution to problem 5 and some other thoughts about this type of questions htt

随机推荐

  • 通过运行 AsyncTask 处理方向变化[重复]

    这个问题在这里已经有答案了 使用案例 用户启动将加载验证码的应用程序 用户填写验证码并尝试下载一些信息 Problem 如果用户在下载时旋转设备Activity被摧毁了 在执行结束时 AsyncTask 尝试更新已销毁的Activity和r
  • 将依存解析的输出转换为树

    我在用Stanford dependency parser我得到以下句子的输出 我在睡梦中射杀了一头大象 python dep parsing py u shot u VBD u nsubj u I u PRP u shot u VBD u
  • JavaScript 和 ActionScript 3 之间的主要区别是什么?

    我知道这两种语言都来自相同的 ECMA 262 标准 看来两者变得非常相似 JavaScript 通过以下方法为核心对象实例添加事件侦听器freeze and sealECMAScript 262 第 5 版等 我想知道有什么区别 首先 A
  • 将 Tensorflow 模型转换为 tensorflow-lite (.tflite) 格式时出现问题

    我用 python 制作了一个用于图像分类的张量流模型 我使用的是 Windows 10 我有一个Train py我在其中定义图形的类build graph 并训练模型train 这里是main py script import fire
  • 如何查明使用哪个密钥库来签署应用程序?

    我有一个已签名的应用程序和几个密钥库文件 我想更新应用程序 因此我需要找出使用了哪一个按键 如何将最初用于签署我的应用程序的密钥库与我计算机上的各种密钥库进行匹配 首先 解压APK并提取文件 META INF ANDROID RSA 该文件
  • 使用 Numpy 或 TensorFlow 实现多个 2D 矩阵的高效轴方向笛卡尔积

    因此 首先 我认为我想要实现的是某种笛卡尔积 但仅在各列之间按元素进行 我想做的是 如果您有多个大小为 N D1 N D2 N D3 N Dn 的二维数组 因此 结果是跨 axis 1 的组合乘积 最终结果的形状为 N D 其中 D D1
  • BufferedReader 不读取过去的空行[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图找出
  • djangorest框架迭代模型序列化器中的字段

    我想迭代 ModelSerializer 中的字段并希望将这些字段设置为必填字段 这不起作用 我怎样才能做到这一点 有人请帮助我 class CustomerSerializer serializers ModelSerializer cl
  • Github Actions 徽章不显示状态

    我在我的存储库上运行了很多次 github 操作 没有出现任何问题 并且在我的存储库之一上使用相同的脚本 它显示 无状态 回购协议是 https github com aurelpere python planif https github
  • 如何使用 JDBC 从数据库检索 SDO_GEOMETRY?

    我是 Java 新手 我需要从数据库检索 SDO GEOMETRY 并使用 jdbc 将其转换为字符串 如果有人有示例或想法 请与我分享 如有帮助 将不胜感激 此致 Sanjay 看看几何学 http download oracle com
  • django.db.utils.OperationalError:(2005,“未知的 MySQL 服务器主机 'db' (-2)”)

    我正在尝试在 docker 容器中运行 django 和 mysql version 2 services db image mysql latest volumes db var lib mysql ports 3306 3306 env
  • 检查编译单元的 DWARF 版本

    全部 有没有工具可以检查文件的 DWARF 版本 像这样的东西 dwarf tool binary name 4 在Linux环境下 如果你安装了 GCC 你应该有readelf可执行的 所以你可以尝试这个 readelf debug du
  • UITableViewRowAnimationFade 不起作用

    所以 这个问题是从上一期 https stackoverflow com questions 11330153 但我决定发布一个新问题以保持相关性和整洁 基本上 当调用下面这段代码时 两者没有区别UITableViewRowAnimatio
  • 系统错误:父模块“未加载”,无法执行相对导入[重复]

    这个问题在这里已经有答案了 我有以下目录 myProgram app init py main py mymodule py mymodule py class myclass object def init self pass def m
  • 如何将mongodb与casbah的连接池化?

    我正在使用 mongodb 和 scala 驱动程序casbah 如果我没理解错的话 它不提供连接池 有没有 casbah 的池库 比如dbcp c3p0用于 jdbc 连接 Casbah 包装了 MongoDB Java 驱动程序 它提供
  • 正确地将参数传递给 Go Exec

    我正在尝试学习 Go 作为开始 我想尝试构建一个超级简单的 Web 服务器来控制我的 iTunes 我用过osascript e Tell Application iTunes to playpause 过去曾多次出于此目的 我想我可以简单
  • 本地数据库 API - 已弃用 有什么替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 稀疏矩阵作为 R 中层次聚类的输入

    我有一个关于使用距离矩阵进行聚类的问题 但稀疏 是否存在不扩展矩阵并且可以使用稀疏表示的稀疏距离对象格式 目前我正在做以下事情 read sparse matrix sparse lt readMM sparse matrix distan
  • C#:将int[]转换为字符串的最有效方法

    我确实知道此类问题已经被回答过很多次了 尽管我找到了很多可能的答案 但它们仍然没有解决我的问题 即实现将整数数组转换为单个字符串的最快方法 我有例如 int Result new int 1753387599 1353678530 9870
  • 序言中的有效括号列表

    我正在尝试测试括号列表是否有效 我的代码 checkbrackets checkbrackets T T List checkbrackets List checkbrackets T T List append Rest T checkb