package main


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @return bool布尔型
 */
func isValid( s string ) bool {
    hash_table := make(map[byte]byte, 0)
    hash_table['('] = ')'
    hash_table['{'] = '}'
    hash_table['['] = ']'
    queue := make([]byte, 0)
    for _,c := range s {
        if len(queue) == 0 {
            queue = append(queue, byte(c))
        } else {
            val,ok := hash_table[queue[len(queue)-1]]
            if ok {
                if val == byte(c) {
                    queue = queue[0:len(queue)-1]
                } else {
                    queue = append(queue, byte(c))
                }
            } else {
                return false
            }
        }
    }
    return len(queue) == 0
}