日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

常考数据结构与算法:括号序列

發布時間:2025/6/15 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常考数据结构与算法:括号序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

給出一個僅包含字符'(',')','{','}','['和']',的字符串,判斷給出的字符串是否是合法的括號序列
括號必須以正確的順序關閉,"()"和"()[]{}"都是合法的括號序列,但"(]"和"([)]"不合法。

?

示例1

輸入

"["

返回值

false

?

示例2

輸入

"[]"

返回值

true

?

import java.util.Stack;public class IsValidString {public static void main(String[] args) {String str = "main...";String sign = "([)]"; // falsesign = "{[()]}"; // true// sign = "{[()]})"; // false//sign = "{[()]}("; // falseIsValidString isValidString = new IsValidString();boolean result = isValidString.isValid(sign);System.out.println(result);}// 下面的寫法更為簡潔public boolean isValid (String s) {// write code hereStack<Character> stack = new Stack<Character>();for(char c:s.toCharArray()){if(c =='(')stack.push(')');else if(c =='[')stack.push(']');else if(c =='{')stack.push('}');else if(stack.empty()||stack.pop()!=c)return false;}return stack.empty();}/**** @param s string字符串* @return bool布爾型*/public boolean isValid1 (String s) {Stack stack = new Stack();if(null == s || s.length() == 1){return false;}for(int i=0;i<s.length();i++){char ch = s.charAt(i);// 如果是左括號,就入棧if(ch == '(' || ch == '[' || ch == '{' ){stack.push(ch);}else{// 如果棧為空,說明找到匹配的符號,返回falseif(stack.isEmpty()){return false;}else{char top = (char)stack.pop();if((top == '(' && ch == ')') || (top == '[' && ch == ']') || (top == '{' && ch == '}') ){// 括號和棧頂括號匹配,繼續遍歷下一個括號continue;}else{// 括號和棧頂括號不匹配,直接返回falsereturn false;}}}}// 如果棧最終為空,說明括號全部匹配,返回true,否則返回falsereturn stack.isEmpty() ? true : false;} }

?

總結

以上是生活随笔為你收集整理的常考数据结构与算法:括号序列的全部內容,希望文章能夠幫你解決所遇到的問題。

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