#!/bin/bash score=0 while read line; do chars=( $(sed 's/\(.\)/\1 /g' <<< $line) ) opened_chars=() for char in ${chars[@]}; do case $char in '('|'['|'{'|'<') opened_chars+=( $char );; ')') if [ ${opened_chars[-1]} = '(' ]; then unset 'opened_chars[-1]' else score=$((score+3)) break fi;; ']') if [ ${opened_chars[-1]} = '[' ]; then unset 'opened_chars[-1]' else score=$((score+57)) break fi;; '}') if [ ${opened_chars[-1]} = '{' ]; then unset 'opened_chars[-1]' else score=$((score+1197)) break fi;; '>') if [ ${opened_chars[-1]} = '<' ]; then unset 'opened_chars[-1]' else score=$((score+25137)) break fi;; esac done done echo $score