如果你能用Java帮助我,我将不胜感激.
给定两个字符串,假设字符串A =“(AB)(C)”和字符串B =“((AB)(C))”和字符串C =(AB)和字符串D = A(BC)和字符串E = (A(BC))
如何识别String是否完全被字符串B括起来.
例如:boolean flag(String expr){//如果包围则返回false,否则返回true}
如果expr = A,则flag将返回true
如果expr = B,则flag将返回false
如果expr = C,flag将返回false
如果expr = D,则flag将返回true
如果expr = E,则flag将返回flase
对不起,如果不清楚,但它应该适用于任何String表达式:
假设表达式仅包含数字和运算符以及括号.
谢谢.欣赏它.
解决方法:
你不能用正则表达式做*因为嵌套括号不是常规语言.
而是迭代字符串并通过计算开括号和右括号的数量来跟踪嵌套级别.对于每个左括号,将一个添加到嵌套级别.对于每个右括号,减去一个.
>如果在到达字符串末尾之前达到零(或更小),则返回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,string,regex,iteration,char
来源: https://codeday.me/bug/20190826/1729821.html