验证开放和封闭括号的方法

时间:2016-11-12 21:51:24

标签: java brackets

我是Java初学者,我必须实现一种或多种验证开括号和闭括号的方法。例如:我们有()(()((()))) - 它是真的,或者如果我们有()) - 假。在我看来,有一些简单的解决方案,但我没有任何想法...... 我不要求你写一个解决方案(嗯,如果你想,我不会阻止你:D),但是一些提示会很好。

1 个答案:

答案 0 :(得分:4)

穿过琴弦并保留当前打开的未闭合括号的计数器。如果您遇到'(',增加计数器,如果遇到')',请减少计数器。 如果计数在任何时间小于0,或者在检查每个字符后不为0,则该字符串无效。

只是为了好玩有点丑陋和低效的版本:

System.out.println(s.chars().map((i) -> 81 - i * 2).reduce(0, (a, b) -> a >> 31 | a + b) == 0);