有效字串需滿足:
示例 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 ...