判断是否正确的出栈顺序
2018-02-27 15:11
281 查看
bool isOK(int *arr, int len) { stack<int> auxStack; int i = 0; // the index for the arr int j = 1; // the number in seq 1,2,3,4,5 while (j <= len + 1) { //这里是len + 1的原因是,当5入栈的时候j就变成了6,但是这时候不能马上跳出循环 if (auxStack.empty()) { if (j == len + 1) { break; } else { auxStack.push(j++); } } else { if (arr[i] == auxStack.top()) { auxStack.pop(); i++; } else { auxStack.push(j++); } } } if (i == len) { return true; } return false; }
相关文章推荐
- 给定入栈顺序,输出所有可能的出栈情况,并判断给定的序列是否为正确的输出序列
- 判断栈的出栈顺序是否正确
- 18.判断出栈顺序是否正确?
- 给定一个入栈顺序和一个出栈顺序,判断出栈顺序是否可能
- 判断出栈顺序是否正确(栈的压入、弹出序列)
- 判断出栈顺序是否正确
- java 已知进栈序列,判断出栈序列是否正确
- 栈-判断某个出栈顺序是否合法
- 判断出栈顺序是否正确
- 已知栈的压入顺序,判断弹出顺序是否正确
- 判断序列是否为正确的出栈序列
- 根据入栈顺序判断出栈序列正确与否
- Train Problem——判断输出序列是否是输入序列的出栈顺序
- 判断是否出栈的顺序满足入栈顺序-Java
- 判断出栈序列是否正确
- 判断栈的压入顺序与弹出顺序是否正确C++
- 假设表达式中包含三种括号 圆括号方括号大括号 设计一个算法用顺序栈判断表达式中的括号是否正确配对
- 判断出栈顺序是否正确
- 判断入栈和出栈顺序是否一致
- 判断出栈顺序是否正确,c++实现