bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

如何判斷LeetCode有效的括號

本篇內(nèi)容介紹了“如何判斷LeetCode有效的括號”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站長期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蘇州企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,蘇州網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

題目

有效的括號

描述

給定一個(gè)只包括 '('')''{''}''['']' 的字符串 s ,判斷字符串是否有效

有效字符串需滿足:

  • 左括號必須用相同類型右括號閉合

  • 左括號必須以正確的順序閉合

示例 1:

輸入:s = "()"
輸出:true

示例 2:

輸入:s = "()[]{}"
輸出:true

示例 3:

輸入:s = "(]"
輸出:false

示例 4:

輸入:s = "([)]"
輸出:false

示例 5:

輸入:s = "{[]}"
輸出:true

Solution

解法

解題思路

判斷有效括號的思路有哪些?

  • 如果s字符串的長度為奇數(shù),則必不可能閉合,可以直接返回false

  • 建立緩存映射,KEY為左括號,VALUE為右括號

  • 通過利用的特性非常適合我們這題的思路,如果遇到左括號([({)入棧,在進(jìn)行右括號(}]))判斷時(shí)將對應(yīng)棧頂左括號出棧,最后遍歷完棧內(nèi)數(shù)據(jù)

CODE
class Solution {
    public boolean isValid(String s) {
        int length  = s.length();
        //奇數(shù)則不可能閉合
        if(length%2==1){
            return false;
        }
      	//左括號與右括號的緩存映射
        Map<Character,Character> map = new HashMap<>();
        map.put('(',')');
        map.put('[',']');
        map.put('{','}');
        
        Stack<Character> stack = new Stack();
        for(int i = 0 ; i < length ; i++){
            char c =  s.charAt(i);
            //是否為左括號
            if(map.containsKey(c)){
                stack.push(c);
            }else{
              //如果是右括號,并且棧深為0,則說明當(dāng)前的字符串為右括號的字符串,可直接返回false,如 ')'  '}'  ']'  '()())}]'
               if(stack.size()==0){
                   return false;
               }
              //彈出棧,并且從緩存中獲取,對應(yīng)的右括號與當(dāng)前字符串相匹配,是否相等,不相等則返回false
               if(!map.get(stack.pop()).equals(c)){
                   return false;
               }
            }
        }
      	//最終判斷棧深度,為空則說明對撐
        return stack.empty();
    }
}
復(fù)雜度
  • 時(shí)間復(fù)雜度:O(n),其中 n 是字符串 s 的長度

結(jié)果
  • 執(zhí)行用時(shí):2 ms, 在所有 Java 提交中擊敗了76.91%的用戶

  • 內(nèi)存消耗:36.8 MB, 在所有 Java 提交中擊敗了25.12%的用戶

我曾在銀色平原漫步,也曾在青草之河垂釣,這片土地認(rèn)識我,我們?nèi)舨粓?jiān)強(qiáng),就將滅亡

“如何判斷LeetCode有效的括號”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文標(biāo)題:如何判斷LeetCode有效的括號
路徑分享:http://vcdvsql.cn/article12/jhiogc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站品牌網(wǎng)站建設(shè)搜索引擎優(yōu)化網(wǎng)站建設(shè)外貿(mào)建站企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管