Вместо того, чтобы сокращаться, вы должны удлиняться в режиме «двоичного поиска».
Поскольку строка может быть значительно длиннее видимой области, если вы начнете с одного символа и увеличитесь в 2 раза за каждую итерацию, а затем сократитесь на несколько символов за раз, когда достигнете предела длины, у вас должен быть эффективный алгоритм усечения.