Блог пользователя talgat09

Автор talgat09, 12 лет назад, По-русски

Доброго времени суток! поршу помочь с задачей как можно ее решить ???

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
12 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Ну тут вроде можно даже в лоб за квадрат...

Быстрее можно например так: 1) Сделаем бинпоиск по длине строки 2) Для первой строки захешируем все подстроки этой длины(если аккуратно делать, то можно за NlogN) 3) Переберем начало вхождения наибольшей подстроки во вторую и за логарифм проверим вхождение.

Итого Nlog^2N

P.S. чтобы хешировать все подстроки быстро надо уметь искать хеш в скользящем окне.

  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +30 Проголосовать: не нравится

    Ключевое слово в этой задаче — оно встречается там даже два раза — "перестановки". Что делает это решение неправильным, а правильное — очень простым.