Stack-Biểu thức đúng
package ArrayProcessing;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MyStack {
private int maxSize;
private char[] stackArray;
private int top;
public MyStack(int s) {
maxSize = s;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public boolean isEmpty() {
return (top == -1);
}
static int check(String s) {
MyStack myStack = new MyStack(10);
int kt = 0;
for(int i=0; i<s.length(); i++) {
if(s.charAt(i)=='{' || s.charAt(i)=='[' || s.charAt(i)=='(') {
myStack.push(s.charAt(i));
kt = 1;
}
else {
if(s.charAt(i)==')'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='(')return 0;
}
}
if(s.charAt(i)==']'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='[')return 0;
}
}
if(s.charAt(i)=='}'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='}') return 0;
}
}
}
}
if(kt==0) {
return 0;
}
return 1;
}
public static void main(String[] args) throws FileNotFoundException {
int testcase = 2;
System.setIn(new FileInputStream("input.txt"));
Scanner sc = new Scanner(System.in);
int []res = new int[testcase];
for(int i=0; i<testcase; i++) {
int tc = Integer.parseInt(sc.nextLine());
String s = sc.nextLine();
res[i] = check(s);
}
for(int i=0; i<res.length; i++) {
if(res[i]==0)System.out.println("#"+(i+1)+" NO");
else System.out.println("#"+(i+1)+" YES");
}
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MyStack {
private int maxSize;
private char[] stackArray;
private int top;
public MyStack(int s) {
maxSize = s;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public boolean isEmpty() {
return (top == -1);
}
static int check(String s) {
MyStack myStack = new MyStack(10);
int kt = 0;
for(int i=0; i<s.length(); i++) {
if(s.charAt(i)=='{' || s.charAt(i)=='[' || s.charAt(i)=='(') {
myStack.push(s.charAt(i));
kt = 1;
}
else {
if(s.charAt(i)==')'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='(')return 0;
}
}
if(s.charAt(i)==']'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='[')return 0;
}
}
if(s.charAt(i)=='}'){
if(myStack.isEmpty()==true)return 0;
else {
if(myStack.pop()!='}') return 0;
}
}
}
}
if(kt==0) {
return 0;
}
return 1;
}
public static void main(String[] args) throws FileNotFoundException {
int testcase = 2;
System.setIn(new FileInputStream("input.txt"));
Scanner sc = new Scanner(System.in);
int []res = new int[testcase];
for(int i=0; i<testcase; i++) {
int tc = Integer.parseInt(sc.nextLine());
String s = sc.nextLine();
res[i] = check(s);
}
for(int i=0; i<res.length; i++) {
if(res[i]==0)System.out.println("#"+(i+1)+" NO");
else System.out.println("#"+(i+1)+" YES");
}
}
}
Nhận xét
Đăng nhận xét