Код, полученный из вашего псевдокода, с предоставленными вами входными строками не будет генерировать никаких исключений.
Отправленное вами исключение (StringIndexOutOfBoundsException: String index вне диапазона: -1) генерируется, когда подстрока вызывается с beginIndex (в вашем случае i ) больше, чем endIndex (в вашем случае t2 ).
Вы также получите исключение StringIndexOutOfBoundsException при вызове вашего кода с s1 , который короче s2 .