"1"なら5、"a"なら1、5なら"1" という感じです
って、""をつけてるのはstring型なのか?

それにその説明だと無理だろ。
エンコードされた結果が
5,1,1,9,7,2
ですべてint型というのであれば、
デコードは
"1aaig4"
か
"155ig4"
にしかならないだろ