Операции с массивами

Реализуйте метод сжатия массива на основе счетчика повторяющихся символов. Например, массив aabcccccaaa должен превратиться в а2b1с5аЗ. Если «сжатый» массив окажется длиннее исходного, то метод должен вернуть исходный массив.

Помогите пожалуйста реализовать