Menu
CoddyTech

Permutation in String

Перестановка строки использует те же буквы в любом порядке, каждую столько же раз, сколько в исходной строке: tar, rat и art являются перестановками друг друга. Даны две строки s1 и s2, состоящие из строчных английских букв. Верните true, если какая-либо перестановка s1 встречается в s2 как подстрока (последовательность идущих подряд символов), и false в противном случае.

Функция

checkInclusion(s1: string, s2: string) → boolean
s1string
буквы для перестановки
s2string
строка, в которой нужно выполнить поиск
Возвращаетboolean
true, если подстрока s2 является перестановкой s1

Ограничения

  • 1 ≤ s1.length ≤ 2 × 104
  • 1 ≤ s2.length ≤ 5 × 104
  • s1 и s2 содержат только строчные буквы английского алфавита (a — z).
  • s1 может быть длиннее, чем s2.

Примеры

Ввод
s1 = "tar"s2 = "smartphone"
Вывод
true
Пояснение
Подстрока art с индексами от 2 до 4 в smartphone содержит одну a, одну r и одну t — те же буквы, что и в tar.

lock icon+17 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Можешь вернуть все индексы s2, с которых начинается перестановка s1, по-прежнему за время O(m + n)?

Сбросить код
def checkInclusion(s1, s2):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

s1 = "tar"
s2 = "smartphone"

Ожидается

true