Java括號匹配舉例詳解
一、題目描述
給定一個只包括 '(',')','{','}','[',']' 的字符串 s ,判斷字符串是否有效。
有效字符串需滿足:
- 左括號必須用相同類型的右括號閉合。
- 左括號必須以正確的順序閉合。
- 每個右括號都有一個對應(yīng)的相同類型的左括號。
示例:
輸入:s = "()"
輸出:true
輸入:s = "(]"
輸出:false
二、題解
思路分析:
我們可以使用棧來解決這個問題:
遍歷字符串,如果是左括號,就將其入棧;
如果是右括號,就將棧頂元素彈出,判斷是否是與其匹配的左括號,
若棧中無元素可以彈出,則無能與該右括號匹配的左括號,返回false,
若不是與其匹配的左括號,返回false,
若是與其匹配的左括號,則繼續(xù)遍歷下一個字符。
當(dāng)循環(huán)結(jié)束時,判斷棧是否為空,
若棧不為空,則表明還有未匹配的左括號,返回false,
若棧為空,則表示所有的左括號都與相同類型的右括號匹配,返回true

代碼實(shí)現(xiàn):
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
//判斷是否是左括號
char ch = s.charAt(i);
if(ch == '(' || ch == '[' || ch == '{'){
stack.push(ch);
}else {
//右括號,出棧
//無左括號能夠匹配,返回false
if(stack.empty()){
return false;
}
char ch2 = stack.pop();
if((ch2 == '(' && ch == ')') || (ch2 == '[' && ch == ']') || (ch2 == '{' && ch == '}')){
}else {
return false;
}
}
}
return stack.empty();
}
}題目來自:
總結(jié)
到此這篇關(guān)于Java括號匹配的文章就介紹到這了,更多相關(guān)Java括號匹配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java PriorityQueue數(shù)據(jù)結(jié)構(gòu)接口原理及用法
這篇文章主要介紹了Java PriorityQueue數(shù)據(jù)結(jié)構(gòu)接口原理及用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
詳解spring boot 使用application.properties 進(jìn)行外部配置
這篇文章主要介紹了詳解spring boot 使用application.properties 進(jìn)行外部配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
Day16基礎(chǔ)不牢地動山搖-Java基礎(chǔ)
這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
Java中比較器Comparable和Comparator超詳細(xì)解析
Java中在進(jìn)行數(shù)據(jù)排序時,Comparable和Comparator必不可少會遇得到,這篇文章主要給大家介紹了關(guān)于Java中比較器Comparable和Comparator的相關(guān)資料,需要的朋友可以參考下2025-06-06
詳談ThreadLocal-單例模式下高并發(fā)線程安全
這篇文章主要介紹了ThreadLocal-單例模式下高并發(fā)線程安全,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot集成JmsTemplate(隊(duì)列模式和主題模式)及xml和JavaConfig配置詳解
這篇文章主要介紹了SpringBoot集成JmsTemplate(隊(duì)列模式和主題模式)及xml和JavaConfig配置詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Mybatis參數(shù)(Parameters)傳遞方式
這篇文章主要介紹了Mybatis參數(shù)(Parameters)傳遞方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法,實(shí)例分析了java爬蟲的兩種實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07

