Balanced Brackets - Solution

On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Pierrick en début de semaine !

La meilleure solution pour ce problème c'est d'utiliser une stack! En effet, il suffit d'empiler les caractères ouvrants puis dépiler les caractères fermants pour valider la cohérence de la chaîne. Une fois qu'on a cet indice ça va tout seul:

class Kata {
    public static boolean isBalancedBrackets(String input) {
        {
            Stack<Character> stack = new Stack<>();
            for (char current : input.toCharArray()) {
                if (current == '(' || current == '{' || current == '[')
                    stack.push(current);
                else if (current == ')' || current == '}' || current == ']') {
                    if (stack.empty()) return false;
                    char previous = stack.pop();
                    if (previous == '(' && current == ')') continue;
                    if (previous == '{' && current == '}') continue;
                    if (previous == '[' && current == ']') continue;
                    return false;
                }
            }
            return stack.empty();
        }
    }
}

A bientôt pour un nouveau #KataOfTheWeek !

TakiVeille

TakiVeille