#!/usr/bin/ruby

func balanced (str) {

    var depth = 0;
    str.each { |c|
           if(c=='['){ ++depth }
        elsif(c==']'){ --depth < 0 && return false }
    };

    return !depth;
}

[']','[','[[]','][]','[[]]','[[]]]][][]]','x[ y [ [] z ]][ 1 ][]abcd'].each { |str|
    printf("%sbalanced\t: %s\n", balanced(str) ? "" : "NOT ", str);
};