Алгоритмы: Полидром из строки на JavaScript

Полидром — это слова читающиеся в обоих направлениях. И сложность алгоритма может быть разным в зависимости от требований алгоритма, например если требуется не учитывать пробелы или регистр. Но рассмотрим простой вариант, когда на вход приходит слово в lowercase без пробелов.

Пример с циклом while

Цикл идет с 2 сторон и сравнивает каждый символ.

function isPalindrome(string) {
	let left = 0;
	let right = string.length - 1;

	while (left < right) {
		if (string[left] !== string[right]) {
			return false;
		}

		left += 1;
		right -= 1;
	}

	return true;
}

const falsePolidromString = 'meloman';
const truePolidromString = 'redder';
console.log(isPalindrome(falsePolidromString)); // Результат: false
console.log(isPalindrome(truePolidromString)); // Результат: true

Сложность алгоритма ~ O(n)

Компактный вариант с reverse() строки

Сохраняем в переменную строку и отображаем её в reverse(), далее сравниваем.

function isPalindrome(str) {
	var lowRegStr = str.toLowerCase();
	var reverseStr = lowRegStr.split('').reverse().join(''); 
	return reverseStr === lowRegStr;
}

const falsePolidromString = 'meloman';
const truePolidromString = 'redder';
console.log(isPalindrome(falsePolidromString)); // Результат: false
console.log(isPalindrome(truePolidromString)); // Результат: true
Читайте также
Let’s Encrypt прекращает рассылку уведомлений об истечении срока действия сертификатов
Let’s Encrypt прекращает рассылку уведомлений об истечении срока действия сертификатов
Let’s Encrypt прекращает рассылку уведомлений об истечении срока действия сертификатов

С 4 июня 2025 года популярный сервис Let’s Encrypt, известный своим вкладом в безопасность интернета, перестанет отправлять email-уведомления об истечении срока действия SSL-сертификатов. Это решение стало результатом анализа текущих тенденций и потребностей пользователей, а также стремления организации к повышению конфиденциальности данных. Почему Let’s Encrypt отказался от уведомлений? Как объяснили представители Let’s Encrypt, основная причина такого […]

Что было важного у JavaScript в 2023: сигналы, RSC
Что было важного у JavaScript в 2023: сигналы, RSC
Что было важного у JavaScript в 2023: сигналы, RSC

Важные события в 2023 связанные с JavaScript — внедрение сигналов, React компоненты для сервера. JS уже фуллстек?

Что нового в Chrome 123
Что нового в Chrome 123
Что нового в Chrome 123

С помощью новой функции light-dark() можно адаптировать свою цветовую схему; диагностика отзывчивости сайта с помощью API Long Animation Frames; с помощью API статической маршрутизации Service Worker можно избегайте снижения производительности при запуске Service Worker

CSS в 2023, что можно использовать?
CSS в 2023, что можно использовать?
CSS в 2023, что можно использовать?

Всем привет! Как фронтендер среднего уровня и частенько использующий CSS — хочу прокомментировать все новинки CSS которые вышли в этом 2023 году.