Может кто-нибудь помочь мне понять, почему требуется первый rs()==rt()
?
Полагаю, вы имеете в виду тот, который находится перед петлей диапазона. Если строки имеют одинаковую длину, то цикл диапазона не будет выполняться (пустой диапазон). Чек необходим для покрытия этого случая.
Если он используется, то разве мы не должны сначала проверить грубой силой, равны ли струны, а затем двигаться вперед?
Не уверен, что вы имеете в виду здесь. Размещенный код остается пустым (с ...
) после того, как найдены соответствующие хэши. Давайте не будем забывать, что в этот момент мы должны сравнить строки, чтобы подтвердить, что мы действительно нашли соответствие. И до реализации (не показано) продолжать поиск до конца или нет.
Почему мы не рассматриваем равенство строк, когда хеширование выполняется из t [0], а затем пытаемся найти другие совпадения строк?
Я действительно не понимаю эту часть. Обратите внимание, что первые два цикла должны заполнять скользящие хэши для входных строк. Затем следует проверить, есть ли у нас совпадения на этом этапе, а затем цикл обновления парных хэшей по парам, а затем их сравнение. Весь t
проверяется от начала до конца.