最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java括號匹配舉例詳解

 更新時間:2023年10月23日 11:20:29   作者:楠枬  
看到大家對括號匹配問題很感興趣,下面這篇文章主要給大家介紹了關(guān)于Java括號匹配的相關(guān)資料,括號匹配是一種常見的編程問題,涉及到在給定的字符串中判斷括號是否匹配,需要的朋友可以參考下

一、題目描述

給定一個只包括 '('')','{','}''[',']' 的字符串 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();
    }
}

題目來自:

20. 有效的括號 - 力扣(LeetCode)

總結(jié)

到此這篇關(guān)于Java括號匹配的文章就介紹到這了,更多相關(guān)Java括號匹配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 歸并排序的原理及java代碼實(shí)現(xiàn)

    歸并排序的原理及java代碼實(shí)現(xiàn)

    歸并(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然后再把有序子序列合并為整體有序序列。遞歸形式的算法在形式上較簡潔,但實(shí)用性很差。一般情況下,很少利用二路歸并排序法進(jìn)行內(nèi)部排序。
    2016-02-02
  • Java PriorityQueue數(shù)據(jù)結(jié)構(gòu)接口原理及用法

    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)行外部配置

    這篇文章主要介紹了詳解spring boot 使用application.properties 進(jìn)行外部配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Day16基礎(chǔ)不牢地動山搖-Java基礎(chǔ)

    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中比較器Comparable和Comparator超詳細(xì)解析

    Java中在進(jìn)行數(shù)據(jù)排序時,Comparable和Comparator必不可少會遇得到,這篇文章主要給大家介紹了關(guān)于Java中比較器Comparable和Comparator的相關(guān)資料,需要的朋友可以參考下
    2025-06-06
  • 詳談ThreadLocal-單例模式下高并發(fā)線程安全

    詳談ThreadLocal-單例模式下高并發(fā)線程安全

    這篇文章主要介紹了ThreadLocal-單例模式下高并發(fā)線程安全,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot集成JmsTemplate(隊(duì)列模式和主題模式)及xml和JavaConfig配置詳解

    SpringBoot集成JmsTemplate(隊(duì)列模式和主題模式)及xml和JavaConfig配置詳解

    這篇文章主要介紹了SpringBoot集成JmsTemplate(隊(duì)列模式和主題模式)及xml和JavaConfig配置詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Mybatis參數(shù)(Parameters)傳遞方式

    Mybatis參數(shù)(Parameters)傳遞方式

    這篇文章主要介紹了Mybatis參數(shù)(Parameters)傳遞方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法

    JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法

    這篇文章主要介紹了JAVA使用爬蟲抓取網(wǎng)站網(wǎng)頁內(nèi)容的方法,實(shí)例分析了java爬蟲的兩種實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Java生成驗(yàn)證碼

    Java生成驗(yàn)證碼

    本文介紹了Java生成驗(yàn)證碼的流程與方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論

麦盖提县| 进贤县| 平湖市| 瓮安县| 大兴区| 漯河市| 莆田市| 乌兰察布市| 伊宁市| 达尔| 武平县| 武强县| 蒙山县| 镇康县| 桦南县| 灵台县| 鄂尔多斯市| 荥阳市| 紫云| 乌拉特中旗| 托里县| 聊城市| 通州区| 璧山县| 韩城市| 高要市| 鄱阳县| 安陆市| 延安市| 工布江达县| 郓城县| 夏津县| 遵化市| 江门市| 洪雅县| 东平县| 澄迈县| 贵州省| 衡东县| 丹凤县| 吉安市|