描述現在,有一行括號序列,請你檢查這行括號是否配對。輸入
第一行輸入乙個數n(0輸出
每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no
樣例輸入
3[(])
(])([()])
樣例輸出
nonoyes
學過棧,就知道這道題應該用棧解決,附上**:
#include
#include
#include
using namespace std;
// 判斷字元是不是左括號型別
bool isleft(char c)
// 判斷右括號與左括號是否匹配
bool ismatch(char right, char left)
if (left == '[')
if (left == '');}}
// 判斷字串是否匹配
bool matching(char* s)
else
cs.pop();
}++s;
}if (!cs.empty())
return true;
}int main()
i=1;
while(i<=n)
}if(s[low]=='(' && s[high]==')' || s[low]=='[' && s[high]==']')
else break;
}if(low<=high && flag[i]!=1) flag[i]=0;
else flag[i]=1;
i++;
}i=1;
while(i<=n)
return 0;
}
有效括號的兩種思路
有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。一 陣列 1 空字串可被認為是有效字串,單獨判斷 3 字串的長度必須為偶數,否則不是有效括號 2 利用替換的思想 1 如果 成對出現,用 替換,相當於刪除 2 剩下的,如果有成對的,繼續替換 ...
兩種儲存思路
儲存 寬高 每個畫素的 rgba 值 位圖 儲存 寬高 每個幾何圖形 向量圖 一張,如果幾何圖形關係明確,用向量圖來儲存,不但空間占用少,而且資訊比位圖全。因為位圖沒有表達出幾何圖形的關係,在縮放時位圖只好失真。同理,儲存一系列資料時 如果不知道資料的關係,我們只好 像點陣圖一樣 把所有資料老老實實...
快速排序的兩種思路
選取最左端 low 為基準值,以公升序為例 從右向左 high low 查詢到乙個小於基準值的元素,再從左向右查詢乙個大於基準值的元素,再將兩者相交換。while arr j temp low從右向左 high low 查詢到乙個小於基準值的元素,將兩者相交換,再從左向右查詢乙個大於基準值的元素,再...