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");
}
   }
   
}

Nhận xét

Bài đăng phổ biến từ blog này

ASP.NET MVC 5- Ứng dụng quản lý sinh viên

Nhận dạng chữ cái viết tay

[Phần 3]: Controllers