classSolution{publicbooleanisValid(String s){String[] split = s.split("");Stack<String> stack =newStack<>();for(int i =0; i < split.length; i++){if(("(").equals(split[i])||("[").equals(split[i])||("{").equals(split[i])){
stack.push(split[i]);}else{if(stack.isEmpty()){returnfalse;}else{String pop = stack.pop();if(!((("(").equals(pop)&&(")").equals(split[i]))||(("[").equals(pop)&&("]").equals(split[i]))||(("{").equals(pop))&&("}").equals(split[i]))){returnfalse;}}}}if(!stack.isEmpty()){returnfalse;}returntrue;}}
1047.删除字符串中的所有相邻重复项
classSolution{publicStringremoveDuplicates(String s){String[] split = s.split("");Stack<String> stack =newStack<>();for(int i =0; i < split.length; i++){if(stack.isEmpty()){
stack.push(split[i]);}else{String peek = stack.peek();if(peek.equals(split[i])){
stack.pop();}else{
stack.push(split[i]);}}}StringBuilder stringBuilder =newStringBuilder();while(!stack.isEmpty()){String pop = stack.pop();
stringBuilder.append(pop);}
stringBuilder.reverse();return stringBuilder.toString();}}
150.逆波兰表达式求值
classSolution{publicintevalRPN(String[] tokens){Stack<Integer> stack =newStack<>();for(int i =0; i < tokens.length; i++){int flag =0;if(!(("+").equals(tokens[i])||("-").equals(tokens[i])||("*").equals(tokens[i])||("/").equals(tokens[i]))){
flag =1;}if(stack.isEmpty()|| flag ==1){int num1 =Integer.parseInt(tokens[i]);
stack.push(num1);}else{Integer pop1 = stack.pop();Integer pop2 = stack.pop();int result =0;switch(tokens[i]){case"+":
result = pop2 + pop1;break;case"-":
result = pop2 - pop1;break;case"*":
result = pop2 * pop1;break;case"/":if(pop1 !=0){
result = pop2 / pop1;}break;}
stack.push(result);}}Integer pop = stack.pop();return pop;}}