gpt4 book ai didi

sql - 检查支架是否平衡/匹配

转载 作者:行者123 更新时间:2023-12-03 03:48:33 25 4
gpt4 key购买 nike

我有一些 MS Word 文档,我已将其全部内容转移到 SQL 表中。

内容包含多个方括号和大括号,例如

[{a} as at [b],] {c,} {d,} etc 

我需要进行检查以确保括号平衡/匹配,例如以下内容应返回 false:

 - [{a} as at [b], {c,} {d,} 
- ][{a} as at [b], {c,} {d,}
- [{a} as at [b],] {c,} }{d,

到目前为止我所做的就是提取所有括号并将其信息存储到 SQL 表中,如下所示:(段落编号、括号类型、括号位置、括号级别)

3   [   8   1
3 ] 18 0
3 [ 23 1
3 ] 35 0
7 [ 97 1
7 ] 109 0
7 [ 128 1
7 { 129 2
7 } 165 1
7 [ 173 2
7 ] 187 1
7 ] 189 0
7 { 192 1
7 } 214 0
7 { 216 1
7 } 255 0
7 { 257 1
7 } 285 0
7 { 291 1
7 } 326 0
7 { 489 1
7 } 654 0

我不确定该算法如何检查每个段落中的括号是否平衡,并在不平衡时给出错误消息。

如有任何建议,我们将不胜感激!

编辑:

代码也需要适用于以下场景;

(段落编号、括号类型、括号位置、括号级别)

15  [   543 1
15 { 544 2
15 } 556 1
15 [ 560 2
15 ] 580 1
15 ] 581 0
15 [ 610 1
15 ] 624 0
15 [ 817 1
15 ] 829 0

最佳答案

这必须在 SQL Server 上吗?

一个简单的解决方案是使用通用语言并使用堆栈。

  • 逐个字符读取字符串
  • 如果遇到左大括号,请将其插入堆栈。
  • 如果遇到右大括号弹出。

如果满足,则所有括号都匹配

  • 读完该段落后,堆栈为空。

除非在此过程中发生以下情况之一

  • 你必须弹出一个空堆栈
  • 弹出的括号与右括号不匹配

使用正则表达式来匹配括号不是一个好主意,它们不应该这样使用

关于sql - 检查支架是否平衡/匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com