兩分鐘看懂有效的括號

2021-10-22 14:12:38 字數 1681 閱讀 3359

有效字串需滿足:

示例 1:

輸入:s = "()"

輸出:true

示例 2:

輸入:s = "([)]"

輸出:false

我們用四步分析法來分析一下這道題目。

1.模擬

有效的情況:

1)不巢狀

1)長度為奇數,左括號多餘

2.規律

通過上述的模擬,可以總結出以下 3 個特點:

3.匹配

整個過程分為兩步,乙個是配對,乙個是消除。

配對過程,[]

消除的過程是由內向外進行,先判斷能否消除部分子表示式(內),再判斷能否消除整體表示式(外),但在遍歷的過程卻是由外向內進行遍歷,需要儲存狀態,先進後出的特點符合要求。

4.邊界

所謂邊界,即特殊情況:

class solution 

//構建棧

stackstack = new stack();

//由外向內遍歷字串

for(char c : s.tochararray())else if(c == '[')else if( c == '');

}else if( stack.isempty() || c != stack.pop())

}return stack.isempty();

}}時間複雜度

時間複雜度為  o(n)。需要遍歷一遍字串。

空間複雜度

空間複雜度 o(n)。最壞情況下,棧的大小將是輸入字串的長度。

1、2、

兩分鐘看懂空格替換

背景 網路程式設計中,如果說url引數中含有特殊字元,就拿空格說,可能導致伺服器端無法獲得正確的的引數值,這個時候就需替換。1.空格,替換成 20 2.被替換成 23,等 總體思想 1.遍歷找空格。2.移動字元位置。3.替換空格。第一種 時間複雜度o n 2 如果,從頭開始遍歷,遇到空格後,需要將空...

兩分鐘看懂空格替換

背景 網路程式設計中,如果說url引數中含有特殊字元,就拿空格說,可能導致伺服器端無法獲得正確的的引數值,這個時候就需替換。1.空格,替換成 20 2.被替換成 23,等 總體思想 1.遍歷找空格。2.移動字元位置。3.替換空格。第一種 時間複雜度o n 2 如果,從頭開始遍歷,遇到空格後,需要將空...

兩分鐘安裝mysql

mysql 設定mysql客戶端預設字符集 default character set utf8 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄 basedir e mysql mysql 8.0 11 winx64 設定mysql資料庫的資料的存放目錄 datadir ...