日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《程序员面试金典》合法括号判断

發布時間:2024/1/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《程序员面试金典》合法括号判断 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:對于一個字符串,請設計一個算法,判斷其是否為一個合法的括號串。
給定一個字符串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();//棧空,說明左括號和右括號都配上了} }

總結

以上是生活随笔為你收集整理的《程序员面试金典》合法括号判断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。