合法括號判斷2019 11 22

2021-09-30 00:23:33 字數 994 閱讀 6361

對於乙個字串,請設計乙個演算法,判斷其是否為乙個合法的括號串。

給定乙個字串a和它的長度n,請返回乙個bool值代表它是否為乙個合法的括號串。

測試樣例:

"(()())",6

返回:true

測試樣例:

"()a()()",7

返回:false

測試樣例:

"()(()()",7

返回:false

思路:利用棧,如果括號成對,則棧空,否則非空。

class parenthesis {

public:

bool chkparenthesis(string a, int n) {

// write code here

stackst;

for(int i = 0;i < n;i++)

if(a[i] == '(' || a[i] == ')')

if(a[i] == '(')

st.push(a[i]);

if(a[i] == ')' && !st.empty())

st.pop();

else

return false;

if(st.empty())

return true;

return false;

另一種方法:利用變數計數

classparenthesis{

public:

bool chkparenthesis(string a,intn)

int number=0,i;

for(i=0;iif(a[i]=='(')

number++;

if(a[i]==')')

number--;

if(number<0)

return false;

if(number==0)

return true;

else

return false;

合法括號判斷

對於乙個字串,請設計乙個演算法,判斷其是否為乙個合法的括號串。給定乙個字串a和它的長度n,請返回乙個bool值代表它是否為乙個合法的括號串。測試樣例 6 返回 true 測試樣例 a 7 返回 false 先構建乙個列表,碰到 加入列表,碰到 則彈出列表的最後乙個,當遍歷梅結束時,列表為空,則返回f...

合法括號序列判斷

對於乙個字串,請設計乙個演算法,判斷其是否為乙個合法的括號串。給定乙個字串a和它的長度n,請返回乙個bool值代表它是否為乙個合法的括號串。測試樣例 6 返回 true 測試樣例 a 7 返回 false 思路 建立乙個int型別變數num,用來計算左括號 和右括號 的個數是否相等。如下 publi...

合法括號序列判斷

對於乙個字串,請設計乙個演算法,判斷其是否為乙個合法的括號串。給定乙個字串a和它的長度n,請返回乙個bool值代表它是否為乙個合法的括號串。測試樣例 6 返回 true 測試樣例 a 7 返回 false 測試樣例 7 返回 false 思路 我這裡利用了棧這種先進後出的資料結構,遇到 就入棧,遇到...