Lesson 168, №796, Rotate String / Leetcode
Через конкатенацию (rotateString_concat): Используем свойство: если строку можно получить сдвигами, она будет подстрокой s+s Пример: s="abc" → s+s="abcabc" содержит все возможные сдвиги Преимущества: простота и эффективность O(n) Через прямые сдвиги (rotateString_shifts): Явно выполняем все возможные сдвиги Проверяем каждый результат Преимущества: наглядность и простота понимания Недостатки: более медленное O(n²) Через скользящее окно (rotateString_window): Проверяем каждую возможную начальную позицию Используем модульную арифметику для циклического сдвига Преимущества: экономия памяти O(1) Тесты включают: Базовые случаи из условия Пустые строки Одиночные символы Повторяющиеся символы Строки разной длины Сложные случаи с множественными сдвигами Особые случаи, которые нужно учесть: Строки разной длины (всегда false) Пустые строки (true если обе пустые) Одинаковые строки (true без сдвигов) Строки с повторяющимися символами
Название:
Lesson 168, №796, Rotate String / Leetcode
Категория:
Разное