欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java括號(hào)匹配舉例詳解

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

一、題目描述

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

有效字符串需滿足:

  • 左括號(hào)必須用相同類型的右括號(hào)閉合。
  • 左括號(hào)必須以正確的順序閉合。
  • 每個(gè)右括號(hào)都有一個(gè)對(duì)應(yīng)的相同類型的左括號(hào)。

示例:

輸入:s = "()"

輸出:true

輸入:s = "(]"

輸出:false

二、題解

思路分析:

我們可以使用來解決這個(gè)問題:

遍歷字符串,如果是左括號(hào),就將其入棧;

如果是右括號(hào),就將棧頂元素彈出,判斷是否是與其匹配的左括號(hào),

若棧中無元素可以彈出,則無能與該右括號(hào)匹配的左括號(hào),返回false,

若不是與其匹配的左括號(hào),返回false,

若是與其匹配的左括號(hào),則繼續(xù)遍歷下一個(gè)字符。

當(dāng)循環(huán)結(jié)束時(shí),判斷棧是否為空,

若棧不為空,則表明還有未匹配的左括號(hào),返回false,

若棧為空,則表示所有的左括號(hào)都與相同類型的右括號(hào)匹配,返回true

代碼實(shí)現(xiàn):

class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            //判斷是否是左括號(hào)
            char ch = s.charAt(i);
            if(ch == '(' || ch == '[' || ch == '{'){
                stack.push(ch);
            }else {
                //右括號(hào),出棧
                //無左括號(hào)能夠匹配,返回false
                if(stack.empty()){
                    return false;
                }
                char ch2 = stack.pop();
                if((ch2 == '(' && ch == ')') || (ch2 == '[' && ch == ']') || (ch2 == '{' && ch == '}')){
                    
                }else {
                    return false;
                }
            }
        }
        return stack.empty();
    }
}

題目來自:

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

總結(jié)

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

相關(guān)文章

  • Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎

    Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎

    這篇文章主要介紹了Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java排序算法之_選擇排序(實(shí)例講解)

    java排序算法之_選擇排序(實(shí)例講解)

    下面小編就為大家?guī)硪黄猨ava排序算法之_選擇排序(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    學(xué)過數(shù)據(jù)結(jié)構(gòu)的,一定對(duì)隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 詳解Java Callable接口實(shí)現(xiàn)多線程的方式

    詳解Java Callable接口實(shí)現(xiàn)多線程的方式

    這篇文章主要介紹了詳解Java Callable接口實(shí)現(xiàn)多線程的方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 深入剖析理解AsyncGetCallTrace源碼底層原理

    深入剖析理解AsyncGetCallTrace源碼底層原理

    這篇文章主要為大家介紹了AsyncGetCallTrace源碼的深層原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • SpringCloud Feign高級(jí)配置詳解

    SpringCloud Feign高級(jí)配置詳解

    這篇文章主要介紹了SpringCloud Feign高級(jí)配置,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • java警告:源發(fā)行版17 需要目標(biāo)發(fā)行版17問題及解決

    java警告:源發(fā)行版17 需要目標(biāo)發(fā)行版17問題及解決

    文章介紹了如何解決項(xiàng)目JDK版本不一致的問題,包括修改Project Structure、Modules、Dependencies和Settings中的JDK版本,以及在pom.xml中指定JDK源版本
    2024-11-11
  • java框架之maven是用來做什么的

    java框架之maven是用來做什么的

    這篇文章主要介紹了java之maven是用來做什么的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談java線程狀態(tài)與線程安全解析

    淺談java線程狀態(tài)與線程安全解析

    本文主要介紹了淺談java線程狀態(tài)與線程安全解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java postgresql數(shù)組字段類型處理方法詳解

    Java postgresql數(shù)組字段類型處理方法詳解

    這篇文章主要介紹了Java postgresql數(shù)組字段類型處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評(píng)論