[([([(]]]))) 這個(gè)是判斷不出來(lái)的
?//存在的
? ? MyStack<char> *pStack = new MyStack<char>(100);
? ??
? ? //需要的
? ? MyStack<char> *pNeedStack = new MyStack<char>(100);
? ??
? ??
? ? ?char str[] = "[([([(]]])))";
? ?// char str[] = "[()[()]]";
?
? ? for(int i=0;i<strlen(str);i++){
? ? ? ? char t = str[i];
? ? ? ? if(t == '('){
? ? ? ? ? ? pNeedStack->push(')');
? ? ? ? ?}else if(t == '['){
? ? ? ? ? ?pNeedStack->push(']');
? ? ? ? ?}else{
? ? ? ? ? ? ?pStack->push(t);
? ? ? ? ?}
? ? }
? ? if(pNeedStack->stackLength() == pStack->stackLength()){
? ? ? ? ? cout << "字符串匹配" << endl;
? ? }else{
? ? ? ? ? ?cout << "字符串不匹配" << endl;
? ? }
2020-10-06
可能老師沒(méi)講清楚題意,我理解是 這個(gè)括號(hào)匹配是按 運(yùn)算時(shí)候的括號(hào) 來(lái)要求的,即 ?成對(duì)的括號(hào)內(nèi)才能套著成對(duì)的括號(hào)。比如【7+(6+(2+【1+2】))】 而不能 【(】【)】 這樣就無(wú)法運(yùn)算了?