fun lengthLeft(polymer: String): Int { val arr = CharArray(polymer.length) var i = 0 var j = 0 while (j <= polymer.lastIndex) { arr[i] = polymer[j++] if (i > 0 && arr[i - 1].isOpposite(arr[i])) i-- else i++ } return i } fun Char.isOpposite(other: Char) = this != other && this.toLowerCase() == other.toLowerCase()