Skip to content

Instantly share code, notes, and snippets.

@rhynl
Created October 10, 2017 23:47
Show Gist options
  • Select an option

  • Save rhynl/47cd9d0f47938638b665111c5cb043eb to your computer and use it in GitHub Desktop.

Select an option

Save rhynl/47cd9d0f47938638b665111c5cb043eb to your computer and use it in GitHub Desktop.
package programa;
import java.util.Stack;
public class Programa {
public static void main(String[] args) {
String cadena_no_valida = "**(Cadena no equilibrada en paréntesis(()()()))))";
if (verificarBalanceoDeSimbolos(cadena_no_valida, '*', '*')) {
System.out.println("Valido");
} else {
System.out.println("Invalido");
}
}
/**
*
* @param cadena_a_validar
* @param symbol_apertura
* @param symbol_cierre
* @return
*/
public static boolean verificarBalanceoDeSimbolos(String cadena_a_validar, char symbol_apertura, char symbol_cierre) {
boolean valido = false;
Stack<Character> pila = new Stack<Character>();
int i = 0;
while (i<cadena_a_validar.length()) {
if(cadena_a_validar.charAt(i) == symbol_apertura) {
pila.push(symbol_cierre);
} else if(cadena_a_validar.charAt(i) == symbol_cierre) {
if (!pila.empty()) {
pila.pop();
} else {
pila.push(symbol_cierre);
break;
}
}
i++;
}
if (pila.empty()) { valido = true;}
return valido;
}
public static boolean verificarBalanceoDeSimbolos(String cadena, char symbol) {
boolean valido = false;
int i = 0;
Stack<Character> caracteres = new Stack<>();
while(i<cadena.length()) {
if (cadena.charAt(i) == symbol)
caracteres.push(symbol);
i++;
}
if (caracteres.size() % 2 == 0) { valido = true; }
return valido;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment