TOPIC

Runtime Error

Pedro Ramos asked 2 years ago

import java.io.IOException;
import java.util.Scanner;
import java.util.Stack;

public class Main {

    public static void main(String[] args) throws IOException {
        Scanner s = new Scanner(System.in);
        String expressao;
        for(int i = 0; i <= 10000; i++) {
            do {
                expressao = s.nextLine();
            } while (expressao.length() > 1000);

            if(checaParenteses(expressao)) System.out.println("correct");
            else System.out.println("incorrect");
        }
    }

    public static boolean checaParenteses(String expressao) throws IOException {
        Stack<Character> stack = new Stack<>();
        for (char i = 0; i < expressao.length(); i++){
            if(expressao.charAt(i) == '(') stack.push(expressao.charAt(i));
            else if(expressao.charAt(i) == ')') {
                if(stack.isEmpty()) return false;
                if(stack.pop() != '(') return false;
            }
        }
        return stack.isEmpty();
    }
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • 🧙The Install Wizard 🧙 replied 2 years ago

    O número de expressões é um valor entre 1 e 10000. Portanto, é mais seguro ler expressões até EOF.