1. 程式人生 > >[演算法]括號字串是否合法

[演算法]括號字串是否合法

括號字串是否合法

某個字串只包括(,判斷其中的括號是否匹配正確,比如(()())正確,((())()錯誤,不允許使用棧

這種類似題的常見思路是棧,對於左括號入棧,如果遇到右括號,判斷此時棧頂是不是左括號,是則將其出棧,不是則該括號序列不合法。

面試官要求不能使用棧,可以使用計數器,利用int count欄位。

12345678910111213141516 public static boolean checkBrackets(String str) { char[] cs = str.toCharArray(); int count = 0; for (int i = 0; i < cs.length; i++) { if
(cs[i] == '(') count++; else { count--; if (count < 0) { return false; } } } return count == 0;}