栈 Stack 队列 Queue
栈是一种后进先出的数据结构
Last in First Out(LIFO)
队列是一种先进先出的数据结构
First in First Out
拿之前数组的类来模拟下栈跟队列,难点在于循环队列
leetcode 第20题 是通过栈来实现
import java.util.Stack;
public class Solution{
public boolean isValid(String s){
Stack<Character> stack = new Stack<>();
for(int i = 0; i< s.length();i++){
char c = s.charAt(i);
if(c == '(' || c == '[' || c == '{'){
stack.push(c);
}else{
if(stack.isEmpty()){
return false;
}
char topChar = stack.pop();
if(c == ')' && topChar !='(')
return false;
if(c == ']' && topChar !='[')
return false;
if(c == '}' && topChar !='{')
return false;
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
System.out.println( (new Solution()).isValid("()[]{}"));
System.out.println( (new Solution()).isValid("()[]{{"));
}
}