改行は\r\nも許容しています。 また、最後の改行はなくてもよいとしています。

同じ文字が続く箇所を探す部分に線形時間かかっているので、ここの時間が長くなるように、同じ文字が続く箇所がない文字列を作るとよいです。