對於乙個字串,請設計乙個演算法,判斷其是否為乙個合法的括號串。
給定乙個字串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 思路 我這裡利用了棧這種先進後出的資料結構,遇到 就入棧,遇到...