[([([(]]]))) 這個是判斷不出來的
?//存在的
? ? 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
可能老師沒講清楚題意,我理解是 這個括號匹配是按 運算時候的括號 來要求的,即 ?成對的括號內(nèi)才能套著成對的括號。比如【7+(6+(2+【1+2】))】 而不能 【(】【)】 這樣就無法運算了?