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

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

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

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

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

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

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

Итого Nlog^2N

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

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

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