张超q
2020-04-08 15:31
//存在的
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;
}
可能老师没讲清楚题意,我理解是 这个括号匹配是按 运算时候的括号 来要求的,即 成对的括号内才能套着成对的括号。比如【7+(6+(2+【1+2】))】 而不能 【(】【)】 这样就无法运算了
数据结构探险—栈篇
62733 学习 · 102 问题
相似问题