quinta-feira, 25 de outubro de 2018

URI PROBLEMA 1068 - Balanço de Parênteses I SOLUÇÃO EM JAVA

URI Online Judge | 1068

Balanço de Parênteses I

Por Neilor Tonin, URI  Brasil
Timelimit: 1
Dada uma expressão qualquer com parênteses, indique se a quantidade de parênteses está correta ou não, sem levar em conta o restante da expressão. Por exemplo:
a+(b*c)-2-a        está correto
(a+b*(2-c)-2+a)*2  está correto
enquanto
(a*b-(2+c)         está incorreto
2*(3-a))           está incorreto
)3+b*(2-c)(        está incorreto
Ou seja, todo parênteses que fecha deve ter um outro parênteses que abre correspondente e não pode haver parênteses que fecha sem um previo parenteses que abre e a quantidade total de parenteses que abre e fecha deve ser igual.

Entrada

Como entrada, haverá expressões (1 <= <= 10000), cada uma delas com até 1000 caracteres.

Saída

O arquivo de saída deverá ter a quantidade de linhas correspondente ao arquivo de entrada, cada uma delas contendo as palavras correct ou incorrect de acordo com as regras acima fornecidas.



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Main{
    static boolean checkParen(String str){
        int len = str.length(), cont = 0;
        char c;
        boolean openclose = true;
        for(int i = 0; i < len; i++){
            c = str.charAt(i);
            if(c == '(')
                cont++;
            else if(c == ')' && cont > 0)
                cont--;
            else if(c == ')' && cont <= 0){
                openclose = false;
                cont--;
            }
        }
        if(cont == 0 && openclose)
            return true;
        return false;
    }
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str = br.readLine()) != null){
            if(checkParen(str))
                System.out.println("correct");
            else
                System.out.println("incorrect");
        }
    }
}

Nenhum comentário:

Postar um comentário

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...