基於棧實現括號匹配演算法
阿新 • • 發佈:2018-12-09
括號匹配演算法在各種編輯器中使用的非常多,其實基於棧來實現是非常簡單的。程式碼如下:
/** * 括號匹配 * * @author Dongguabai * @date 2018/9/12 17:26 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ParenthesisMatchingHelper { public static boolean mather(String str) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c == '(' || c == '[' || c == '{') { stack.push(c); } else { if (stack.isEmpty()) { return false; } Character pop = stack.pop(); if (c == ')' && pop != '(') { return false; } if (c == ']' && pop != '[') { return false; } if (c == '}' && pop != '{') { return false; } } } return stack.isEmpty(); } }