Обработка строк JavaScript для подготовки к собеседованию и ежедневного кодирования
Строка - это последовательность символов. Это либо константа, либо переменная. Это важный тип данных в языке программирования. В этой статье мы сосредоточимся на манипуляциях со строками JavaScript. Однако принцип и алгоритмы могут быть применены и к другим языкам.
Когда вам предлагают техническое интервью, интервьюер обращает внимание на несколько вещей:
- Насколько хороши ваши навыки программирования?
- Насколько актуальны ваши языковые навыки?
- Насколько хорошо вы умеете решать проблемы?
Эта серия интервью подготовит вас к успешному техническому собеседованию, но она также полезна для ежедневного кодирования.
В формате содержания кода мы перечисляем важные особенности строки JavaScript, которая является основой навыков программирования. Есть свойства и методы, которые существуют уже 20 лет, а также функции в ES2021. Возможно, вы уже знаете их все. Если есть что-то непонятное, вы знаете, где нужно еще учиться.
Благодаря языку программирования JavaScript мы можем решить ряд текстовых задач. Эти алгоритмы или их варианты часто тестируются на реальном собеседовании.
Строковые свойства и методы
Строка используется для представления и управления последовательностью символов. Есть ряд свойств и методов строки. Ниже приведены примеры кода для обзора, включая matchAll
в ES2020, replaceAll
в ES2021 и at
в ES2022.
Карта и набор
Для манипуляций со строками нам нужно где-то хранить промежуточные значения. Array
, Map
и Set
- популярные структуры данных, которые вам необходимо освоить. О Array
мы поговорим в другой статье. Здесь рассматриваются Set
и Map
.
Установленный
Set
- это объект для хранения уникальных значений любого типа. Ниже приведены примеры кода для ознакомления. Это должно быть самоочевидным.
карта
Map
- объект для хранения пар ключ-значение. Любое значение может использоваться как ключ или значение. Map
запоминает исходный порядок вставки ключей. Ниже приведены примеры кода для ознакомления. Это также должно быть самоочевидным.
Текстовые задачи
В интервью есть много проблем с английскими словами. Мы исследуем некоторые алгоритмы, которые часто тестируются.
Изограмма
изограмма - это слово, в котором ни одна буква алфавита не встречается более одного раза.
Ниже приведены длинные изограммы:
- дерматоглифика (15 букв)
- гидропневматика (15 букв)
- неверно (15 букв)
- не подлежит авторскому праву (15 букв)
- не авторские права (16 букв)
- субдерматоглифический (17 букв)
Как написать алгоритм, определяющий, является ли строка изограммой? Есть много способов добиться этого. Мы можем поместить строку в Set
, а затем она автоматически разбивается на символы. Поскольку Set
- это объект для хранения уникальных значений, его размер должен быть таким же, как длина строки, если это изограмма.
Это проверочные тесты:
Панграм
панграмма - это предложение, содержащее все 26 букв алфавита, независимо от регистра. В идеале предложение должно быть как можно короче.
Следующие короткие предложения представляют собой панграммы:
- Вальс, плохая нимфа, для быстрых джигов досадно. (28 букв)
- Ожившая нимфа-лисица исполняет быстрый вальс. (28 букв)
- Бойкие качки проверяют нимфу на раздражение гнома. (28 букв)
- Сфинкс из черного кварца, суди мою клятву. (29 букв)
- Как досадно быстро прыгают глупые зебры! (30 букв)
- Пять волшебников бокса быстро прыгают. (31 буква)
- Галки любят мой большой кварцевый сфинкс. (31 буква)
- Упакуйте мою коробку пятью дюжинами кувшинов со спиртным. (32 буквы)
- Быстрая коричневая лисица перепрыгивает ленивую собаку. (33 буквы)
Есть также много способов проверить, является ли данная строка панграммой. На этот раз мы помещаем каждую букву (преобразовать в нижний регистр) в Map
. Если Map
имеет размер 26, это панграмма.
Это проверочные тесты:
Изоморфные струны
Учитывая две строки s
и t
, они изоморфны, если символы в s
можно заменить на t
. Любое преобразование символов в s
должно применяться ко всем одинаковым символам в s
. Например, murmur
изоморфен tartar
, если m
заменяется на t
, u
заменяется на a
, а r
заменяется самим собой.
Следующий алгоритм использует массив для хранения символов преобразования. Он также будет работать с Map
.
Это проверочные тесты:
Анаграмма
анаграмма - это слово, которое формируется путем перестановки букв другого слова, как правило, с использованием всех исходных букв ровно один раз.
Может быть много возможностей переставить слово из пула. Например, кот имеет анаграммы кот, act, atc, tca, atc и tac. Мы можем добавить дополнительное требование, чтобы новое слово появилось в исходной строке. Если источником является actually
, результирующий массив будет [“act”]
.
Это проверочные тесты:
Палиндром
палиндром - это слово или предложение, которое читается одинаково вперед и назад. Есть много палиндромов, таких как A, Боб и «Человек, план, канал - Панама».
Все алгоритмы проверки палиндрома делятся на два типа. Один использует цикл для проверки с обоих концов, являются ли они одинаковыми, а другой использует рекурсию для проверки с обоих концов, одинаковы ли они. В следующем коде используется метод рекурсии.
Это проверочные тесты:
Есть много вопросов для интервью с палиндромом с некоторыми вариациями. Ниже приводится алгоритм поиска самого длинного палиндрома в заданной строке.
Это проверочные тесты:
Заключение
Есть и другие проблемы со словами. Практика ведет к совершенству. Наслаждайтесь кодированием!
Спасибо за прочтение. Я надеюсь, что это было полезно. Вы можете увидеть другие мои публикации в Medium здесь.