自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每日算法:有效的括號(hào)

開(kāi)發(fā) 前端 算法
當(dāng)遍歷完成時(shí),所有已匹配的字符都已匹配出棧,如果此時(shí)棧為空,則字符串有效,如果棧不為空,說(shuō)明字符串中還有未匹配的字符,字符串無(wú)效。

 [[420388]]

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

有效字符串需滿(mǎn)足:

  • 左括號(hào)必須用相同類(lèi)型的右括號(hào)閉合。
  • 左括號(hào)必須以正確的順序閉合。

注意空字符串可被認(rèn)為是有效字符串。

示例 1:

  1. 輸入: "()" 
  2. 輸出: true 

示例 2:

  1. 輸入: "()[]{}" 
  2. 輸出: true 

示例 3:

  1. 輸入: "(]" 
  2. 輸出: false 

示例 4:

  1. 輸入: "(]" 
  2. 輸出: false 

示例 5:

  1. 輸入: "([)]" 
  2. 輸出: false 

解答:利用棧結(jié)構(gòu)

解題思路: 將字符串中的字符依次入棧,遍歷字符依次判斷:

  • 首先判斷該元素是否是 { 、 ( 、 [ ,直接入棧
  • 否則該字符為 } 、 ) 、 ] 中的一種,如果該字符串有效,則該元素應(yīng)該與棧頂匹配,例如棧中元素有 ({, 如果繼續(xù)遍歷到的元素為 ), 那么當(dāng)前元素序列為 ({) 是不可能有效的,所以此時(shí)與棧頂元素匹配失敗,則直接返回 false ,字符串無(wú)效

當(dāng)遍歷完成時(shí),所有已匹配的字符都已匹配出棧,如果此時(shí)棧為空,則字符串有效,如果棧不為空,說(shuō)明字符串中還有未匹配的字符,字符串無(wú)效

畫(huà)圖幫助理解一下:

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

  1. const isValid = function(s) { 
  2.     let map = { 
  3.         '{''}'
  4.         '('')'
  5.         '['']' 
  6.     } 
  7.     let stack = [] 
  8.     for(let i = 0; i < s.length ; i++) { 
  9.         if(map[s[i]]) { 
  10.             stack.push(s[i]) 
  11.         } else if(s[i] !== map[stack.pop()]){ 
  12.             return false 
  13.         } 
  14.     } 
  15.     return stack.length === 0 
  16. }; 

時(shí)間復(fù)雜度:O(n)

空間復(fù)雜度:O(n)

責(zé)任編輯:武曉燕 來(lái)源: 三分鐘學(xué)前端
相關(guān)推薦

2020-10-16 08:09:58

算法代碼字符串

2022-01-19 09:01:28

字符串LeetCode

2021-10-19 10:09:21

三角形個(gè)數(shù)數(shù)組

2021-03-02 08:21:58

LeetCode括號(hào)

2021-10-29 07:25:32

螺旋矩陣整數(shù)

2021-11-19 07:54:40

前端

2021-11-12 09:44:03

字符串算法復(fù)雜度

2021-10-28 19:33:36

矩陣圖像內(nèi)存

2021-10-27 10:43:36

數(shù)據(jù)流中位數(shù)偶數(shù)

2021-09-03 09:41:36

字符串時(shí)間復(fù)雜度

2021-11-04 09:59:03

動(dòng)態(tài)規(guī)劃策略

2021-09-30 09:58:14

路徑總和二叉樹(shù)

2021-09-02 09:22:13

算法無(wú)重復(fù)字符

2021-09-10 08:31:54

翻轉(zhuǎn)字符串單詞

2021-10-26 00:23:26

算法高頻元素

2021-09-15 07:56:32

二叉樹(shù)層次遍歷

2021-09-29 10:19:00

算法平衡二叉樹(shù)

2021-09-28 06:28:51

二叉樹(shù)公共祖先

2021-09-08 09:52:34

語(yǔ)言

2021-08-26 05:08:25

相鄰重復(fù)項(xiàng)算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)