Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Какие методы строк вы знаете?
В JavaScript есть множество методов для работы со строками, таких как charAt(), indexOf(), slice(), substring(), replace(), toUpperCase(), toLowerCase(), trim(), split() и другие. Эти методы позволяют находить символы, изменять регистр, разделять строку на части и выполнять другие операции.
Как работают методы indexOf() и lastIndexOf() в JavaScript?
Оба метода ищут элемент в строке или массиве. indexOf() возвращает первое вхождение элемента (с начала), а lastIndexOf() — последнее (с конца). Если элемент не найден, возвращают -1.
Как устроена строка в C# — ссылочный тип или значимый, и зачем нужен string pool (интернирование)?
string в C# — ссылочный тип с неизменяемым содержимым. CLR использует intern pool — таблицу статически созданных литералов и интернированных строк, чтобы хранить одну копию одинаковых значений. Это экономит память и ускоряет сравнение через ссылочное равенство для литералов.
Для чего используется класс StringBuilder и как он оптимизирует работу со строками?
StringBuilder предназначен для сборки строк путём последовательного добавления, чтобы не создавать новые объекты string при каждой конкатенации. Он хранит изменяемый буфер символов и расширяет его по необходимости, что значительно уменьшает число аллокаций и повышает производительность при большом числе операций.
Что такое подстрока? Как с ней работать?
Substring — это представление части исходной строки, которое использует ту же память. Это эффективно, но временно — для долгосрочного хранения нужно преобразовать в String. Работать через методы строки, например, prefix(), suffix().
Какие проблемы могут возникнуть в JSON-контракте, если числовые поля представлены строками?
Что такое template literals и зачем они нужны?
Какой подход использовать для сравнения анаграмм в строках?
Как корректно проверить отсутствие значения (пустая строка, null, undefined)?
Как реализовать алгоритм сжатия строки и оценить его сложность?
Рейтинг:
4
Сложность:
4
Передача чисел в виде строк может вызвать ошибки при парсинге и привести к лишним преобразованиям типов. Клиент может ожидать число, а получить строку, что приведёт к крашу или неверной логике. Это усложняет валидацию и делает контракт неоднозначным. Также возрастает риск потери производительности из-за постоянных конверсий.
Рейтинг:
4
Сложность:
3
Template literals — это строки в обратных кавычках (`), которые поддерживают интерполяцию выражений и многострочный текст. Они позволяют вставлять переменные и выражения прямо в строку через ${}. Это делает код короче и читабельнее по сравнению с конкатенацией. Также они удобны для HTML-шаблонов и логирования.
Рейтинг:
4
Сложность:
6
Основной подход для сравнения анаграмм — сравнение частот символов. Если частоты всех символов совпадают, строки являются анаграммами. Сортировка строк возможна, но менее эффективна. Для задач с большими объёмами данных предпочтителен подход с частотными таблицами и линейной сложностью.
Рейтинг:
5
Сложность:
7
В JavaScript отсутствие значения может выражаться по-разному. null и undefined означают отсутствие значения, а пустая строка — валидное, но пустое значение. Проверка зависит от бизнес-логики. Универсальной проверки не существует. Нужно явно учитывать нужные случаи.
Рейтинг:
3
Сложность:
6
Простейший алгоритм сжатия строки — это run-length encoding, при котором одинаковые символы заменяются символом и количеством повторений. Например, aaabb превращается в a3b2. Такой алгоритм выполняется за O(n), так как строка проходит один раз.
Рейтинг:
1
Сложность:
2
Рейтинг:
2
Сложность:
2
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
7