栈,队列 正确 if(stack.empty()|| S[i]!=stack.top()) 异常 if(s!=stack.top()||stack.empty()) 这里的判断不会先去判断栈是否为空,直接先比较栈顶元素是否与给定值相等。但是若是栈空,返回的比较与给定值不同。就会异常。 所以如果比较栈顶元素,或是出栈,要先判断栈是否为空。