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

java括號匹配問題介紹

 更新時間:2021年12月31日 09:19:02   作者:to Keep  
大家好,本篇文章主要講的是java括號匹配問題介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

題目描述:

給定一個只包括 ‘(',')','{','}','[',']' 的字符串 s ,判斷字符串是否有效。
有效字符串需滿足:
左括號必須用相同類型的右括號閉合。
左括號必須以正確的順序閉合
題目鏈接:括號匹配問題

問題分析:

1 可能存在左括號多的情況

在這里插入圖片描述

2 可能存在右括號多的情況

在這里插入圖片描述

3 存在括號不匹配的情況

在這里插入圖片描述

總結(jié)解題思路:

1 我們在遍歷字符串的過程中,需要先取得棧頂?shù)脑嘏c右括號比較,看是否匹配,如果匹配才能出棧。
2 在出棧的過程中,如果棧為空,說明右括號多了,如果發(fā)現(xiàn)棧頂元素與右括號不是匹配的括號,那么就需要直接return了
3 在整個字符串遍歷結(jié)束之后,我們要判斷一下棧是否為空,如果為空,說明是匹配的,否則就是左括號偏多的情況。

代碼實現(xiàn):

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{
                if(stack.empty()){//棧為空,右括號多了
                    return false;
                }else{
                    char ch1 = stack.peek();//取棧頂元素
                if(ch1=='('&& ch ==')'||ch1=='{'&&ch=='}'||ch1=='['&&ch==']'){
                    stack.pop();//匹配出棧
                }else{
                    return false;//括號不匹配
                }
                }
            }
        }
        if(!stack.empty()){
            return false;//棧不為空,左括號偏多了
        }
        return true;
    }

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

相關(guān)文章

  • Java繼承方法重寫實現(xiàn)原理及解析

    Java繼承方法重寫實現(xiàn)原理及解析

    這篇文章主要介紹了Java繼承方法重寫實現(xiàn)原理及解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java與Kotlin互調(diào)原理講解

    Java與Kotlin互調(diào)原理講解

    這篇文章主要介紹了Java與Kotlin互調(diào)原理,分享內(nèi)容有Kt調(diào)用-Java參數(shù)非null的處理、Java中使用kt關(guān)鍵字聲明的變量和方法、Kt調(diào)用Java-SAM轉(zhuǎn)換等內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • Java+MyBatis+MySQL開發(fā)環(huán)境搭建流程詳解

    Java+MyBatis+MySQL開發(fā)環(huán)境搭建流程詳解

    Java的MyBatis框架提供了強大的數(shù)據(jù)庫操作支持,這里我們先在本地的開發(fā)環(huán)境中上手,來看一下Java+MyBatis+MySQL開發(fā)環(huán)境搭建流程詳
    2016-06-06
  • Spring中的@Pointcut切點詳解

    Spring中的@Pointcut切點詳解

    這篇文章主要介紹了Spring中的@Pointcut切點詳解,pointcut就是切點,通知需要在哪些方法處進行增強,在AspectJ中用@Pointcut注解表達式標(biāo)注,需要的朋友可以參考下
    2023-08-08
  • maven自動將源碼打包并發(fā)布的實現(xiàn)步驟

    maven自動將源碼打包并發(fā)布的實現(xiàn)步驟

    maven-source-plugin 提供項目自動將源碼打包并發(fā)布的功能,在需要發(fā)布源碼項目的 pom.xml 文件中添加即可,本文就來介紹一下如何設(shè)置,感興趣的可以了解一下
    2023-11-11
  • Java Web之限制用戶多處登錄實例代碼

    Java Web之限制用戶多處登錄實例代碼

    本篇文章主要介紹了Java Web之限制用戶多處登錄實例代碼,可以限制單個用戶在多個終端登錄。非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • Java利用策略模式優(yōu)化過多if else代碼

    Java利用策略模式優(yōu)化過多if else代碼

    這篇文章主要介紹了Java利用策略模式優(yōu)化過多if else代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用springboot在工具類中讀取配置文件(ClassPathResource)

    使用springboot在工具類中讀取配置文件(ClassPathResource)

    這篇文章主要介紹了使用springboot在工具類中讀取配置文件(ClassPathResource),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java實現(xiàn)瀏覽器端大文件分片上傳

    Java實現(xiàn)瀏覽器端大文件分片上傳

    本文主要介紹了Java實現(xiàn)瀏覽器端大文件分片上傳,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java基于分治法實現(xiàn)的快速排序算法示例

    Java基于分治法實現(xiàn)的快速排序算法示例

    這篇文章主要介紹了Java基于分治法實現(xiàn)的快速排序算法,結(jié)合實例形式分析了java基于分治法的快速排序相關(guān)實現(xiàn)技巧,代碼中備有較為詳細的注釋說明便于理解,需要的朋友可以參考下
    2017-12-12

最新評論

朝阳区| 乾安县| 柏乡县| 鄂托克前旗| 密山市| 新郑市| 楚雄市| 仪征市| 恩施市| 老河口市| 达拉特旗| 寿光市| 鹤岗市| 庆元县| 肇庆市| 长春市| 疏勒县| 贵港市| 赣州市| 苏州市| 永和县| 镇原县| 黄石市| 东乡| 诸暨市| 万州区| 泰来县| 礼泉县| 绥滨县| 绥中县| 自贡市| 红河县| 澄城县| 普格县| 保康县| 和硕县| 辰溪县| 梅州市| 菏泽市| 都昌县| 兴隆县|