Обработка строк 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 здесь.