《程序员面试金典》合法括号判断
生活随笔
收集整理的這篇文章主要介紹了
《程序员面试金典》合法括号判断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:對于一個字符串,請設計一個算法,判斷其是否為一個合法的括號串。
給定一個字符串A和它的長度n,請返回一個bool值代表它是否為一個合法的括號串。
測試樣例:
“(()())”,6
返回:true
測試樣例:
“()a()()”,7
返回:false
測試樣例:
“()(()()”,7
返回:false
解析:用一個棧來完成該題目,遇到 “(”就入棧,遇到“)”右括號就彈棧(需要判斷棧是否為空,要是空,沒的彈 ,直接返回false了)。既不是“(”又不是“)”就返回false
import java.util.*; public class Parenthesis {public boolean chkParenthesis(String A, int n) {Stack<String> stack = new Stack<>();for(int i=0;i<n;i++){if(A.charAt(i)=='('){//入棧stack.push(String.valueOf(A.charAt(i)));}else if(A.charAt(i)==')'){//彈棧if(stack.isEmpty()){//理論上是不為空的,因為前面一般會有個"("與它配對的return false;}else {stack.pop();}}else {//不是左括號又不是右括號,返回falsereturn false;}}return stack.isEmpty();//棧空,說明左括號和右括號都配上了} }總結
以上是生活随笔為你收集整理的《程序员面试金典》合法括号判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的死锁的例子
- 下一篇: 《数据库SQL实战》获取所有部门当前ma