gpt4 book ai didi

java - 圆括号标识符 Java

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:34 29 4
gpt4 key购买 nike

如果您能用 Java 帮助我解决这个问题,我将不胜感激。

给定两个字符串,假设 String A = "(A+B)+(C)"String B = "((A+B)+(C))"String C = (A+B)String D = A+(B+C)String E = (A+(B+C ))

如何识别字符串是否像字符串 B 一样完全被括号包围。

例如:boolean flag(String expr) {//如果被包围则返回 false,否则返回 true }

如果 expr = A,标志将返回 true

如果 expr = B,标志将返回 false

如果 expr = C,标志将返回 false

如果 expr = D,标志将返回 true

如果 expr = E,flag 将返回 flase

抱歉,如果不清楚,但它应该适用于任何字符串表达式:

假设表达式只包含数字运算符括号

谢谢。欣赏它。

最佳答案

你不能用正则表达式做到这一点*,因为嵌套括号不是一种常规语言。

而是遍历字符串并通过计算左括号和右括号的数量来跟踪嵌套级别。对于每个左括号,将一个括号添加到嵌套级别。对于每个右括号减去一个。

  • 如果在到达字符串末尾之前达到零(或更少),则返回 true。
  • 如果最后达到零,则返回 false。
  • 任何其他内容都是不平衡的括号,除非您的输入无效,否则不应发生。

这里有一些例子来证明这个原则:

(A+B)+(C)
11110 TRUE

((A+B)+(C))
12222112210 FALSE

(A+B)
11110 FALSE

A+(B+C)
0 TRUE

(A+(B+C))
111222210 FALSE

*理智

关于java - 圆括号标识符 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065536/

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